Mit CSS-Animationen können mehrstufige Übergänge definiert und damit ganze Abläufe von sich ändernden Element-Eigenschaften gestaltet werden. Die Abläufe können dabei auch beliebig oft wiederholt werden.
Um eine Animation zu definieren wird zunächst eine sog. „@keyframes“-Regel erstellt, mit der festgelegt wird, welche Eigenschaften ein Element zu welchem Zeitpunkt haben soll. Mit der CSS-Eigenschaft „animation-name“ wird dann eine „@keyframes“-Regel einem Element zugeordnet:
Beim Ausführen der Animation werden dann Übergänge zwischen den in der „@keyframes“-Regel definierten Zuständen interpoliert.
Mit der CSS-Eigenschaft „animation-name“ kann auf eine „@keyframes“-Regel verwiesen werden:
CSS-Datei:
HTML-Datei:
Ergebnis:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Mit der CSS-Eigenschaft „animation-duration“ kann die Dauer der Animation festgelegt werden:
CSS-Datei:
HTML-Datei:
Ergebnis:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Mit der CSS-Eigenschaft „animation-delay“ kann eine Zeitspanne festgelegt werden um die eine Animation verzögert gestartet werden soll:
CSS-Datei:
HTML-Datei:
Ergebnis:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Mit der CSS-Eigenschaft „animation-iteration-count“ kann die Anzahl an Wiederholungen definiert werden, mit der eine Animation ausgeführt werden soll. Mit dem Wert „infinite“ wird eine Animation unbegrenzt weiter ausgeführt:
CSS-Datei:
HTML-Datei:
Ergebnis:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Mit der CSS-Eigenschaft „animation-direction“ kann die Reihenfolge der Animation festgelegt werden. Standardmäßig läuft die Animation vom niedrigsten zum höchsten Prozentwert in der „@kexframes“-Regel. Mit dem Wert „reverse“ kann die Reihenfolge umgekehrt werden:
CSS-Datei:
HTML-Datei:
Ergebnis:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Mit der CSS-Eigenschaft „animation-timing-function“ kann die Art und Weise (Funktion) des Animationsverlaufs angeben werden. Dabei sind folgende Werte möglich:
CSS-Datei:
HTML-Datei:
Ergebnis:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Mit der CSS-Eigenschaft „animation-fill-mode“ kann definiert werden, ob das entsprechende Element vor einer Animation den ersten Zustand der Animation einnehmen und/oder nach einer Animation den letzten Zustand beibehalten soll. Das hat den Vorteil, dass der Zustand eines Elements nach einer Animation nicht wieder auf den Zustand vor der Animation zurückspringt und der erste Zustand vor einer Animation nicht doppelt definiert werden muss. Für die Eigenschaft „animation-fill-mode“ sind folgende Werte möglich:
CSS-Datei:
HTML-Datei:
Ergebnis:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Mit der Shorthand-Property „animation“ können die folgenden sechs Animations-Eigenschaften mit einer Eigenschaft definiert werden. Dabei müssen nicht für alle Eigenschaften Werte definiert werden und die Reihenfolge kann, bis auf die Angaben für „animation-duration“ und „animation-delay“, variieren:
CSS-Datei:
HTML-Datei:
Ergebnis:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Als Abschlussübung kannst du das Beispiel aus dem vorhergehendem Punkt erweitern, so dass es aussieht, als ob der Ball beim Aufprall am Rand gestaucht wird und dabei eine rötliche Farbe bekommt:
Hinweis: Die Animation muss vor einem erneuten Starten zurückgesetzt werden!
Die Lösung kannst du dir zur Kontrolle hier herunterladen: