Auch wenn das Animieren von SVG mit CSS für den durchschnittlichen Front-End-Entwickler vielleicht komfortabler ist, verfügt SVG über eine weitere eingebaute Möglichkeit zur Animation, die direkt in der SVG-Syntax selbst enthalten ist. Genau das behandeln wir kurz in diesem Video. Wenn Sie jedoch eine vollständige Referenz wünschen, sollten Sie sich unbedingt A Guide to SVG Animations (SMIL) von Sara Soueidan hier auf CSS-Tricks ansehen.
SMIL steht für Synchronized Multimedia Integration Language. Soweit ich weiß, ist das ein "Ding" für sich, das in SVG integriert ist. Aber SVG hat einige eigene SMIL-ähnliche Ergänzungen. Ich werde es einfach alles SMIL nennen, auch wenn ich sicher bin, dass ich technisch gesehen manchmal falsch liege.
Für sehr einfache Animationen spielt es keine große Rolle, ob Sie es in SMIL oder CSS machen, es wird dasselbe Ergebnis mit ungefähr demselben Schwierigkeitsgrad erzielen. Manche Dinge sind in CSS vielleicht sogar einfacher. Aber hier sind einige Dinge, bei denen SMIL die beste Wahl ist
- Sie müssen etwas animieren, das CSS nicht beeinflussen kann. Wie die Form eines Polygons oder Pfads.
- Sie möchten Ereignisse nutzen, um die Animation zu beeinflussen, z. B. `click` oder `mouseover` oder etwas Ähnliches.
- Sie möchten additive Animationen durchführen, z. B. von Ihrem aktuellen Punkt aus um weitere X Pixel animieren.
- Sie möchten Animationen haben, die sich direkt auf andere Animationen beziehen, z. B. wenn diese Animation endet, starten Sie die nächste Animation (ohne manuell die Dauer zu manipulieren).
- Ich bin sicher, es gibt noch mehr.
Die Syntax wirkt zunächst einschüchternd, aber sie ist wirklich ziemlich einfach, ich verspreche es. Hier ist ein grundlegendes Beispiel
<svg>
<rect x="5" y="5" width="50" height="50">
<animate attributeName="width" to="75" dur="2s"></animate>
<animate attributeName="y" to="25" dur="2s"></animate>
<animate attributeName="fill" to="red" dur="2s"></animate>
</rect>
</svg>
Siehe den Pen jAipI von Chris Coyier (@chriscoyier) auf CodePen.
Die "Shape Morphing"-Funktion ist mit SMIL wirklich einzigartig, daher hier ein besseres Beispiel als das seltsame, das wir im Video hatten
Siehe den Pen Shape Morph Button von Chris Coyier (@chriscoyier) auf CodePen.
In dieser Demo werden die Ereignisse von JavaScript anstelle von SMIL behandelt. Es ist nur gut zu wissen, dass man das auch tun kann. SMIL-Ereignisauslöser sind cool, aber dann muss das Element, auf das geklickt werden soll, in diesem SVG und nicht irgendwo anders im DOM sein.
Ich liebe die Lektionen absolut. In dieser Lektion ist beim Bearbeiten der Hülle in Illustrator "Objekt/Verbundpfad/Freigeben" Ihr Freund, es hat den Effekt des Gruppierens aller Formen aufzuheben. Ich hoffe, das hilft.
Oh Mann, das hier ist großartig! Was für ein cooler Effekt mit so wenig Markup. Ich kann es kaum erwarten, eine Situation zu finden, in der ich das verwenden kann.
Ich stimme vollkommen zu, dass die Bewegung die Tatsache hervorhebt, dass etwas geschieht / geschehen ist. Viel "natürlicher" als nur das Austauschen.
Chris, zu Ihrer Information, ich denke, die ursprüngliche Viewbox war 0,0,100,100 und die späteren waren 0,0,250,250. Es ist wahrscheinlich uralte Geschichte für Sie, aber ich habe es auf dem Weg bemerkt :-)
Großartige Arbeit. Glückwunsch.
Übrigens, ich habe versucht, dasselbe zu tun. Nicht so schön, aber ich habe es geschafft :) ... bitte schauen Sie es sich an: http://codepen.io/tapmorales/pen/QNYwEY
Um es zu bekommen, habe ich den Pfad in Illustrator einfach gespiegelt, ohne ihn zu drehen. Und es funktionierte, wie ich wollte.