Sagen, ich habe ein SVG-Bild mit mehreren Top-Level „g“ Elemente wie folgt aus:Klicken Sie durch Serie von Bildern mit SVG „animieren“
<svg>
<g id="id1">...</g>
<g id="id2">...</g>
<g id="id3">...</g>
...
</svg>
Jetzt würde ich nur das eine mit id1
zu zeigen, wie am Anfang, gleiten durch id2
, id3
und so weiter, wie der Benutzer wiederholt auf das Bild klickt (ähnlich einer Powerpoint-Präsentation). Ich habe versucht, dies als ersten Schritt:
<animate xlink:href="#id2" attributeName="opacity" from="0" to="0" dur="0s" begin="0s"/>
<animate xlink:href="#id3" attributeName="opacity" from="0" to="0" dur="0s" begin="0s"/>
...
<animate xlink:href="#id2" attributeName="opacity" from="0" to="100" dur="0.25s" begin="click" id="anim1"/>
<animate xlink:href="#id1" attributeName="opacity" from="100" to="0" dur="0.25s" begin="anim1.begin" id="anim2"/>
...
Die ersten Zeilen sollen, alle Bilder mit Ausnahme des id1
Bild transparent machen - der gut arbeitet. Die nächsten zwei Zeilen sollen id1
transparant machen und id2
anzeigen - was nicht funktioniert. Ich nehme an, dass die transparenten Bilder mit höheren IDs auf höheren Ebenen (in z-Richtung) liegen und die Klick-Ereignisse der unteren Bilder blockieren. Aber ich weiß nicht, wie man sie komplett "verschwinden lässt" oder was auch immer.
Und wahrscheinlich gibt es einen besseren Weg, dies trotzdem zu tun ...?
Auch wenn der Ansatz, den ich gearbeitet sugested, ich nicht wirklich weiß, wie mit mehr Bildern, um fortzufahren. Vielleicht gibt es einen ganz anderen Weg, dies zu tun ...? – Duke
Persönlich würde ich Javascript verwenden, wenn es verfügbar ist, gibt es Bibliotheken wie Snap.svg oder SVG.js helfen. Chrome lehnt die Unterstützung für SVG Animate ab (es gibt einen Polyfill dafür). Ich denke, die Route, die befördert wird, ist für CSS-Animation oder Javascript. http://stackoverflow.com/questions/30965580/deprecated-smil-svg-animation-replaced-with-css-or-web-animations-effects-hover – Ian
Javascript ist keine Option, ich muss SVG verwenden. Ich habe eine SVG-Grafikbox, die einzige Möglichkeit, Änderungen vorzunehmen. Der gesamte HTML-Code ist behoben. – Duke