Ich habe eine ziemlich komplexe, dynamisch erstellte Svg-Bild, das mit jQuery SVG erstellt wurde. Ich möchte einen "Popup" -Bereich erstellen, der über allen SVG-Elementen im Canvas angezeigt wird. Um einen modernen, lichtdurchlässigen iOS7-ähnlichen Look zu erstellen, möchte ich einen Weichzeichnungsfilter auf alles unter dem Popup-Bereich anwenden. Ich möchte in der Lage sein, die X-, Y- und auch die Breiten- und Höhenattribute dieses Popup-Bereichs dynamisch festzulegen.Apply Blur Filter auf bestimmte Bereich von Svg Bild
Werfen Sie einen Blick auf 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>
In diesem Fall alles, was verwischt werden sollte durch den weißen Bereich abgedeckt ist. Es sollte dann wie folgt aussehen:
ich this gefunden habe, aber hier ein statisches Hintergrundbild verwendet wird, die ich nicht habe. Gibt es irgendwelche Gründe, diesen Effekt mit Svg, CSS und jQuery zu erreichen?
Hey super! Das funktioniert sehr gut! Vielen Dank, mein Team wird mit diesem Ergebnis sehr zufrieden sein! =) – Dafen
Nur noch eine Frage: Wenn unter dem Filter kein Element ist, wird es nur schwarz. Gibt es eine Möglichkeit, den Hintergrund hinter dem SVG-Element zu verwenden?(css background-image auf das html-Tag gesetzt) Wenn nicht, werde ich versuchen, eine Kopie des HTML-Hintergrundbildes unter dem Filter, aber über den anderen SVG-Elementen zu zeigen. – Dafen
Nur wenn der Browser enable-background und BackgroundImage unterstützt. Aber die meisten nicht, wie Michael schon darauf hingewiesen hat. Wenn es so wäre, würdest du seine Lösung anstelle meiner verwenden. –