Entwicklung

CSS3 Animationen - Ein erster Einstieg

Dieser Artikel ist älter als zwei Jahre und womöglich veraltet!

Vielleicht haben Sie schon einmal davon gehört: CSS3-Animationen. Es soll also möglich sein nur mit CSS eine kleine Animation zu erstellen. Doch wie geht das? Am Besten probieren wir es einmal an einem kleinen Beispiel, um die Grundzüge zu verstehen.

Wir nehmen an, wir wollen einen einfachen Text rotieren lassen:

Demo

Zuerst wird die Animation im CSS der Seite definiert:

@keyframes move
{
	50% { margin-left: 500px;}
	100% { transform: rotate(360deg);}
}

Zur Erklärung: Man erstellt ein Definition mit dem Namen @keyframes und benennt es ganz nach seinen Vorlieben. Ich habe die Animation hier move genannt. In den Anweisungen für dieses Element wird für die jeweiligen Animationsfortschritt in Prozent der Zustand abspeichern. Hier zum Beispiel eine Rotation um 360° und bei 50% eine Verchiebung zu margin-left: 500px.

Aber: So einfach läuft es auf der Welt einfach nun einmal nicht: Natürlich funktioniert es bei Firefox nur mit @-moz-keyframes und bei Safari und Chrome nur mit @-webkit-keyframes und transform braucht natürlich auch noch ein Prefix. Und ja: Der Internet-Explorer fällt durch, war ja klar.

Also nochmal für alle:

@keyframes move
{
  50% { margin-left: 500px;}
  100% { transform: rotate(360deg);}
}
@-moz-keyframes move
{
  50% { margin-left: 500px;}
  100% { -moz-transform: rotate(360deg);}
}
@-webkit-keyframes move
{
	50% { margin-left: 500px;}
	100% { -webkit-transform: rotate(360deg);}
}

Jetzt wird der CSS-Definition die gewünschte Animation zugewiesen:

.demo_object{
	animation: move 2s infinite;
}

Es läuft also nach dem Muster:

*animation: [unendlichkeit (optional)]*

Man gibt den Namen der Animation, die vorher definiert wurde und danach die gewünschte Länge der Animation an. Zusätzlich kann man noch defninieren, ob die Animation unendlich wiederholt werden soll, und zwar mit infinite.

Und, Sie ahnen es schon, das Spiel wiederholt sich. Also:

.demo_object{
	animation: move 2s infinite;
	-moz-animation: move 2s infinite;
	-webkit-animation: move 2s infinite;
}

CSS-Animationen stellen schon heute eine gute Möglichkeit dar HTML-Elemente zu animieren. Zu wüschen wäre jedoch eine bessere Unterstützung der Browser und kein Zwang zur Nutzung der browserspezifischen Prefixe. Da der Internet-Explorer jedoch immer noch eine große Verbreitung aufweist, muss mit der Verwendung noch ein wenig gespart werden, bzw. ein Fallback angeboten werden.