Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

CSS scroll-basierte Animationen

Das CSS-Modul für scroll-basierte Animationen bietet Funktionalitäten, die auf dem CSS-Animationsmodul und der Web Animations API aufbauen. Es ermöglicht Ihnen, Eigenschaftswerte basierend auf einem Fortschritt entlang einer scrollbasierten Zeitleiste anstelle der standardmäßigen zeitbasierten Dokumenten-Zeitleiste zu animieren. Das bedeutet, dass Sie ein Element durch das Scrollen eines scrollbaren Elements animieren können, anstatt lediglich durch den Zeitablauf.

Es gibt zwei Arten von scrollbasierten Zeitleisten:

  • Scroll-Fortschritts-Zeitleiste: Sie schreiten auf dieser Zeitleiste voran, indem Sie ein scrollbares Element (Scroller) von oben nach unten (oder von links nach rechts) und zurück scrollen. Die Position im Scrollbereich wird in einen Fortschrittsprozentsatz umgewandelt — 0% am Anfang und 100% am Ende.
  • Sichtbarkeits-Fortschritts-Zeitleiste: Diese Zeitleiste basiert auf der Änderung der Sichtbarkeit eines Elements (bekannt als Subjekt) innerhalb eines Scrollers. Die Sichtbarkeit des Subjekts innerhalb des Scrollers wird als Fortschrittsbestandteil verfolgt — standardmäßig ist die Zeitleiste bei 0%, wenn das Subjekt erstmals an einem Rand des Scrollers sichtbar ist, und 100%, wenn es den gegenüberliegenden Rand erreicht.

Wenn eine dieser beiden Zeitleisten auf ein animiertes Element angewendet wird, verläuft die Animation entlang dieser Zeitleiste anstatt der standardmäßigen zeitbasierten Zeitleiste zu folgen.

Es ist möglich, die effektive Platzierung der Animation entlang der Scroll-Fortschritt- und Sichtbarkeits-Fortschritts-Zeitleisten anzupassen, d.h. Sie können die Position definieren, an der die Animation beginnt und endet. Dies kann auf ein paar verschiedene Arten geschehen:

  • Start- und Endwerte des Animationsbereichs können auf die Animation angewendet werden, um die Position des Start- und Endpunkts der Animation entlang der Zeitleiste anzupassen.
  • Sichtbarkeits-Fortschritts-Zeitleisten können einen Start- und/oder End-Absatz (oder Auszug) enthalten, um die Position des Scrollports (siehe Scroll-Container für weitere Details) anzupassen, in dem das Subjektelement als sichtbar erachtet wird. Anders gesagt, dies ermöglicht es Ihnen, Start- und/oder End-Absatz-/Auszugswerte zu spezifizieren, die die Position der Zeitleiste selbst versetzen.

Scroll-basierte Animationen in Aktion

Sie finden mehrere Tools und Demos, die scroll-basierte Animationen in Aktion zeigen, unter Scroll-basierte Animationstools und -demos.

Referenz

Eigenschaften

Setzen Sie die Zeitleiste, die den Fortschritt einer Animation steuert, und legen Sie ihren Befestigungsbereich entlang dieser Zeitleiste fest:

Definieren Sie benannte Scroll-Fortschritts-Zeitleisten:

Definieren Sie benannte Sichtbarkeits-Fortschritts-Zeitleisten:

Ändern Sie den Zeitleistenbereich:

At-Regeln und Deskriptoren

CSS-scroll-basierte Animationen fügen die Möglichkeit hinzu, <timeline-range-name> in @keyframes-Blöcke einzuschließen, um Keyframes an spezifischen Positionen innerhalb benannter Zeitleistenbereiche zu platzieren.

Funktionen

Mögliche Werte der animation-timeline-Eigenschaft zur Definition von anonymen Scroll-Fortschritts-Zeitleisten und anonymen Sichtbarkeits-Fortschritts-Zeitleisten (d.h. implizit vom Browser definiert, anstatt explizit benannt und mit den scroll-timeline-* und view-timeline-*-Eigenschaften definiert):

Schnittstellen

Spezifikationen

Specification
Scroll-driven Animations
CSS Animations Level 2
Web Animations Level 2

Siehe auch