У меня довольно сложное, динамически созданное изображение svg, которое было создано с помощью jQuery SVG. Я бы хотел создать область «всплывающих окон», которая отображается поверх всех элементов svg на холсте. Чтобы создать современный полупрозрачный вид iOS7, я хотел бы применить фильтр размытия ко всему под областью всплывающих окон. Я хочу иметь возможность динамически устанавливать атрибуты x, y, а также ширину и высоту этой всплывающей области.Применить фильтр размытия к определенной области изображения svg
Посмотрите this example:
<svg width="500" height="500">
<rect x="10" y="10" height="235" width="235" fill="red" />
<rect x="255" y="10" height="235" width="235" fill="green" />
<rect x="10" y="255" height="235" width="235" fill="blue" />
<rect x="255" y="255" height="235" width="235" fill="yellow" />
<rect x="50" y="50" height="400" width="400" fill="rgba(255,255,255,0.8)" />
</svg>
В этом случае, все, что покрывается белой области должны быть размыты. Он должен выглядеть следующим образом:
Я нашел this, но здесь используется статическое фоновое изображение, которое у меня нет. Есть ли какие-либо причины для достижения этого эффекта с помощью svg, css и jQuery?
Эй, потрясающе! Это работает очень хорошо! Большое вам спасибо, моя команда будет очень довольна этим результатом! =) – Dafen
Еще один вопрос: если элемент под фильтром отсутствует, он становится просто черным. Есть ли способ использовать фон, который находится за элементом svg?(css background-image, установленный в тег html) Если нет, я попытаюсь показать копию фонового изображения html под фильтром, но над другими элементами svg. – Dafen
Только в том случае, если браузер поддерживает enable-background и BackgroundImage. Но большинство нет, как уже указывал Майкл. Если бы они это сделали, вы бы использовали его решение вместо моего. –