Ideal zum Lernen:
Kurs als Videos
Video-Kurs HTML5, CSS
& Webdesign
HTML-Kurs, CSS u. Webdesign lernen & die eigene Website erstellen
Videos eBook Forum Kontakt
Sie befinden sich: Startseite » CSS lernen – Webdesign erstellen » CSS3 keyframes: komplexe Animationen

Animationen über keyframes - Drehbuch für Animationen

CSS3 mit seinen Animationen bietet die Möglichkeit gezielt CSS-Eigenschaften über einen festgelegten Zeitraum zu verändern. So können Farben, Positionen, Größen, Transparenz und wirklich alle weiteren Eigenschaften von CSS geändert werden.

Beispiel

Der Zeitraum kann frei bestimmt werden und durch die langsam schneller werdende Beschleunigung bzw. durch realistische Verzögerung kann ein natürlicher Eindruck beim Betrachter erzeugt werden.

Die einfachste Variante ist die Änderung über die CSS-Pseudo-Klasse :hover. So kann auf die Mausberührung einer Schaltfläche durch einen Nutzer reagiert werden und beispielsweise der Button mit einer Farbänderung oder einem Schlagschatten versehen werden.

Für die Veränderung werden als Minimum die folgenden 2 CSS-Anweisungen benötigt:

  • transition-property
  • transition-duration

Für eine Schaltfläche sieht das so aus:

.schaltflaeche {
    background-color: skyblue;
    transition-property: background-color;
    transition-duration: 1s;
} 
.schaltflaeche:hover {
    background-color: limegreen;
}

Oder in der Kurzschreibweise:

transition: background-color 1s;

Für die natürliche Wirkung kann noch die Beschleunigung bzw. Abbremsen der Animation angegeben werden über transition-timing-function. Hier gibt es folgende Werte:

  • linear
  • ease
  • ease-in
  • ease-out
  • ease-in-out

Zusätzlich kann noch eine Verzögerung vor dem Start der Animation angegeben werden über die CSS-Anweisung transition-delay.

Das Ganze kann in der Kurzschreibweise eingegeben werden:

transition: background-color 1s ease 2s;

CSS-Keyframe-Animationen

Wenn mehrere unterschiedliche Stadien in einer Animation erwünscht sind also Anfang und Ende kann dies über Keyframe-Animationen erstellt werden.

Hier quasi ein Drehbuch für die Animation erstellt, die @keyframes-Regel. Diese bekommen einen Namen und werden über den Namen dann angesprochen. Die einfachste Variante ist mit Anfang und Ende.

@keyframes drehbuch {
    from {  
        // gewünschte Eigenschaften am Beginn der Animation
    }
    to {
        // gewünschte Eigenschaften am Ende der Animation
    }
}

Der Aufruf geschieht über einen beliebigen Selektor:

body {
    animation-name: drehbuch;
    animation-duration: 1s; 
    animation-iteration-count: infinite;
}

Komplexe Animationen können über beliebig viele @keyframes laufen:

@keyframes drehbuch {
    0% {  
        // gewünschte Eigenschaften am Beginn der Animation
    }
    30% {  
        // gewünschte Eigenschaften bei 30% der Animation
    }
    80% {  
        // gewünschte Eigenschaften bei 80% der Animation
    }
    100% {
        // gewünschte Eigenschaften am Ende der Animation
    }
}

Im Folgenden ein Beispiel über mehrere Stadien:

<div id="bereich">Beispiel</div>

Und den entsprechenden CSS-Code:

@keyframes drehbuch {
    0% {
        background-color:mediumpurple;
    }
    20% {
        background-color:orange;
        transform: translate(180px, 0);
    }
    40% {
        background-color:yellowgreen;
        border-radius: 50%;
        transform: translate(180px, 180px);
    }
    60% {
        background-color:deepskyblue;
        transform: translate(0, 180px);
    }
    80% {
        background-color:deepskyblue;
        transform: translate(90px, 90px) scale(2.5) rotate(70deg);
        border-radius: 50%;
    }
    100% {
        background-color:mediumpurple;
    }
}

#bereich{
    margin: 20px;
    width:  40px;
    height: 40px;

    color: white;
    font-size: 9px;
    line-height: 40px;
    text-align: center;

    animation-name: drehbuch;
    animation-duration:8s;
    animation-iteration-count:infinite;
}

Was passiert am Ende der Animation? Über die CSS-Anweisung animation-fill-mode kann dies eingestellt werden: Mögliche Werte sind: forwards, backwards, both

Über die CSS-Anweisung: animation-direction: alternate; kann eingestellt werden, dass die Animation am Ende rückwärts läuft. Mögliche Werte sind: normal, reverse, alternate, alternate-reverse

Weiterempfehlen • Social Bookmarks • Vielen Dank

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Vielen Dank für Ihre Hilfe

    E-Books zum Kurs

    von HTML-Seminar.de

    E-Books mit rund 930 Seiten Umfang als PDF. Alle 3 zu einem Preis.

    Mehr Details