Jedes Kreiselement ist mit einem animateTransform-Element versehen worden um das Kreissegment wenige Pixel aus dem Kreis heraus zu animieren. Das Ereignis wird mittels mouseover ausgelöst.
Dieses Webmuster habe ich mit Affinity Designer erstellt und als SVG exportiert. In der SVG-Datei habe ich Zeichnung als Muster (Pattern) definiert. Mittels der Slider kannst du das Muster rotieren, sklalieren und die Linien (strokes) ein- bzw. ausblenden. Die Verbindung zwischen den Reglern und der Grafik ist mit JavaScript realisiert.
In diesem Beispiel siehst du eine Kombination von Transformationen und Pfad Animationen mit SMIL.
Fragen zur Wiederholung von Animationssequenzen
Ich suche noch nach einer Lösung, wie sich Browser übergreifend Animationssequenzen wiederholen lassen. Leider gibt es meines Wissens kein Ereignis, das ausgelöst wird, sobald die letzte Animation ihr Ende erreicht hat.
Die Pfade habe ich mit Affinity Designer erstellt und als SVG ohne Hintergrund exportiert.
Mit dem <animate>-Element kannst du z.B. das d oder pointsattribute. In diesem Beispiel habe ich einen Kreis mit Affinity Designer gezeichnet und dem Kreis vier weitere Ankerpunkte hinzugefügt. Wichtig ist, dass der Pfad jederzeit die gleiche Anzahl der Ankerpunkte aufweist.
Pfadbearbeitung in Affinity Designer
Die Pfade habe ich aus Affinity Designer als SVG-Dateien exportiert. Wie das funktioniert habe ich im Artikel Selektiver SVG-Export mit Affinity Designer beschrieben. Die Animation vom Kreis zur Kreuz- oder Kleeblattform erfolgt mit nur einem zusätzlichen Element namens <animate>.
Pfadanimation mit dem <animate>-Element
Das Attribut begin definiert den Anfang der Animation. AttributeName=“d“ legt das zu animierende Attribut des <path>-Elementes fest. Hier könnte bei Polygonen mit dem Attribut points gearbeitet werden. Mittels dur=“0.5s“ wird die Dauer der gesamten Animation festgelegt, hier 0,5 Sekunden. Im Attribut to=“…“ wird der Pfad der geänderten Form eingefügt. Der Wert freeze des letzten Attributes fill=““ sorgt dafür, dass die Animation am Ende die letzte Form behält und nicht zum Kreis, der ersten Form, zurück springt. Das <animate>-Element berechnet nun nach Aufruf der Datei im Browser die einzelnen Zwischenpositionen der Ankerpunkte von der Ursprungsform zur nächsten Form.
In der hier dargestellten Animation habe ich drei Pfade animiert und zusätzlich noch mit dem <animateTransform>-Element rotieren lassen. Hinweis: Wenn du dir die Grafik in einem eigenen Tab anzeigen lässt oder herunter lädst, kannst du dir den Quelltext der gesamten Animation ansehen.
Browserkompatibilität
Wie leider viel zu oft wird diese Form der SVG-/SMIL-Animation nicht von allen Browseranbietern unterstützt. In Chrome und Firefox läuft die Animation wie erwartet. Safari unterstützt nicht die Wiederholungen die im begin-Attribut mit mehreren Argumenten definiert werden.
Der Internet Explorer unterstützt ab Version 9 SVGen (das obige Beispiel funktioniert dort allerdings nicht). Der neue Browser Edge unter Windows 10 ebenfalls. Ich hatte allerdings noch keine Möglichkeit die Funktionen ausführlich zu testen. Weitere Informationen findest du hier: https://msdn.microsoft.com/en-us/library/gg193979(v=vs.85).aspx
In diesem Beispiel siehst du einige Animationsmöglichkeiten in SVG. Zur Animation habe ich folgende Elemente verwendet:
SMIL <animateMotion>-Element für den Animationspfad
CSS mit Keyframes für die weiße Schrift
Den Quelltext der animierten SVG-Datei kannst du dir mit einem rechten Mausklick auf das Bild (Seitenquelltext anzeigen) ansehen.
Klicke bitte auf das Bild um die SVG-Animation in einem neuen Tab zu öffnen.
Um die Keyframe-Animation und die SMIL-Animation synchron zu starten, habe ich mit Hilfe von JavaScript der weißen Schrift beim Klick auf die Schaltfläche start writing… eine CSS-Class hinzugefügt.
<script type="text/javascript">
<![CDATA[
function clickme(evt) {
var element = document.getElementById("schrift");
element.classList.add("animatedfont");
}
]]></script>
<style>
Sicher kennst du den Incognito Modus des Google Chrome Browsers. Mich stört es auf dem Mac immer wieder, dass ich in den Einstellungen nirgends konfigurieren kann, dass der Browser immer im Incognito Modus startet.
Ich erkläre dir hier eine mögliche Lösung, wie du mit AppleScript den Browser direkt im Incognito Modus öffnen kannst.