CSS

⌘K
  1. Home
  2. Docs
  3. CSS
  4. CSS Animations

CSS Animations

CSS Animations: CSS Animationen ermöglichen es, komplexe Animationseffekte direkt im Stylesheet zu definieren, wodurch dynamische und ansprechende Benutzeroberflächen geschaffen werden können. Im Gegensatz zu CSS-Transitions, die den Übergang zwischen zwei Zuständen steuern, bieten CSS-Animationen die Möglichkeit, mehrere Zwischenzustände zu definieren und detaillierte Animationen zu erstellen.

Grundkonzepte

Was sind CSS-Animationen?

CSS-Animationen bestehen aus zwei Hauptkomponenten: den Keyframes, die den Verlauf der Animation definieren, und den CSS-Eigenschaften, die die Animation steuern. Sie ermöglichen es Entwicklern, Animationen zu erstellen, die über mehrere Schritte hinweg ablaufen.

Syntax

Die grundlegende Syntax für eine CSS-Animation umfasst die Definition von Keyframes und die Anwendung der Animation auf ein Element.

Keyframes definieren:

@keyframes animation-name {
    from {
        /* Startzustand */
    }
    to {
        /* Endzustand */
    }
}

Anwenden der Animation:

selector {
    animation: animation-name duration timing-function delay iteration-count direction fill-mode;
}
  • animation-name: Der Name der Keyframe-Animation.
  • duration: Die Dauer der Animation (z. B. 2s).
  • timing-function: Die Funktion, die den Verlauf der Animation steuert (z. B. ease, linear).
  • delay: Die Verzögerung, bevor die Animation beginnt (optional).
  • iteration-count: Anzahl der Wiederholungen (z. B. infinite für unendlich).
  • direction: Definiert die Richtung der Animation (z. B. normal, reverse).
  • fill-mode: Steuert, wie das Element vor und nach der Animation aussieht (z. B. forwards, backwards).

Beispiel

Ein einfaches Beispiel für eine Animation, die ein Element von links nach rechts bewegt:

@keyframes slide {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(100px);
    }
}

.box {
    width: 100px;
    height: 100px;
    background-color: blue;
    animation: slide 2s ease-in-out;
}

In diesem Beispiel wird das Element .box über einen Zeitraum von 2 Sekunden von seiner ursprünglichen Position um 100 Pixel nach rechts verschoben.

Fortgeschrittene Konzepte

Mehrere Keyframes

CSS-Animationen können mehr als nur einen Start- und Endzustand haben. Sie können mehrere Keyframes definieren, um die Animation komplexer zu gestalten.

Beispiel mit mehreren Keyframes:

@keyframes bounce {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-50px);
    }
    100% {
        transform: translateY(0);
    }
}

.bouncing-box {
    width: 100px;
    height: 100px;
    background-color: red;
    animation: bounce 1s infinite;
}

Hier wird das Element .bouncing-box wiederholt nach oben und wieder zurück nach unten bewegt.

Animationen steuern

Die Animationen können durch die Eigenschaften animation-play-state, animation-delay und animation-direction gesteuert werden.

  • animation-play-state: Legt fest, ob die Animation pausiert oder abgespielt wird (z. B. running, paused).
  • animation-delay: Definiert, wie lange die Animation warten soll, bevor sie beginnt.
  • animation-direction: Bestimmt die Richtung der Animation (z. B. alternate, um die Animation in umgekehrter Richtung abzuspielen).

Animationen kombinieren

Es ist möglich, mehrere Animationen auf ein einzelnes Element anzuwenden, indem Sie sie durch Kommas trennen.

Beispiel:

.box {
    animation: slide 2s ease, bounce 1s infinite;
}

Hier wird die .box sowohl animiert, um sich zu bewegen, als auch zu hüpfen.

Best Practices

Verwenden von Animationen mit Bedacht

Animationen können die Benutzererfahrung erheblich verbessern, sollten jedoch sparsam eingesetzt werden. Vermeiden Sie übermäßige Animationen, die ablenken oder die Benutzerinteraktion stören könnten.

Performance-Optimierung

Um die Leistung zu optimieren, verwenden Sie animierbare Eigenschaften, die GPU-beschleunigt sind, wie transform und opacity. Vermeiden Sie Layout-brechende Eigenschaften wie width und height.

Häufig gestellte Fragen

Kann ich CSS Animationen mit JavaScript steuern?

Ja, JavaScript kann verwendet werden, um CSS-Animationen dynamisch zu starten, anzuhalten oder zu ändern.

Wie viele Keyframes kann ich in einer Animation definieren?

Es gibt keine feste Obergrenze, aber zu viele Keyframes können die Komplexität erhöhen und die Leistung beeinträchtigen.

Gibt es Unterschiede zwischen CSS-Animationen und CSS-Transitions?

Ja, CSS-Animationen bieten mehr Flexibilität, da sie mehrere Zwischenzustände haben können, während CSS-Transitions nur zwischen zwei Zuständen übergehen.

Wie kann ich die Dauer einer Animation während der Laufzeit ändern?

Sie können die CSS-Eigenschaft animation-duration mithilfe von JavaScript ändern, um die Laufzeit einer Animation zu beeinflussen.

Zusammenfassung

CSS-Animationen bieten eine leistungsstarke Möglichkeit, um komplexe und dynamische Effekte in Webanwendungen zu implementieren. Mit der Möglichkeit, mehrere Keyframes und Steuerungsoptionen zu definieren, können Entwickler ansprechende Benutzeroberflächen gestalten, die die Interaktivität und Benutzererfahrung verbessern.

Übungsaufgaben

  1. Erstellen Sie eine Animation, die einen Text fade-in und fade-out lässt.
  2. Entwickeln Sie eine Animation mit mehreren Keyframes, die eine Figur von einer Ecke des Bildschirms zur anderen bewegt.

Handlungsempfehlungen

Nutzen Sie CSS-Animationen, um ansprechende visuelle Effekte zu erzeugen, die die Benutzererfahrung verbessern. Achten Sie darauf, die Performance im Auge zu behalten und Animationen gezielt und sinnvoll einzusetzen, um eine positive Interaktion zu gewährleisten.