CSS scrollgetriebene Animationen
Das Modul CSS scrollgetriebene Animationen bietet Funktionalität, die auf dem CSS Animationsmodul und der Web Animations API aufbaut. Es ermöglicht Ihnen, Eigenschaftswerte basierend auf einem Fortschritt entlang einer scrollbasierten Zeitachse zu animieren, anstatt der standardmäßigen zeitbasierten Dokumenten-Zeitachse. Das bedeutet, dass Sie ein Element animieren können, indem Sie ein scrollbares Element scrollen, anstatt nur durch den Zeitverlauf.
Es gibt zwei Arten von scrollbasierten Zeitachsen:
- scroll Fortschritt-Zeitachse: Sie bewegen diese Zeitachse, indem Sie ein scrollbares Element (Scroller) von oben nach unten (oder von links nach rechts) und wieder zurück scrollen. Die Position im Scrollbereich wird in einen Fortschrittsprozentsatz umgewandelt — 0% am Anfang und 100% am Ende.
- Ansichtsfortschritt-Zeitachse: Sie bewegen diese Zeitachse basierend auf der Änderung der Sichtbarkeit eines Elements (bekannt als Subject) innerhalb eines Scrollers. Die Sichtbarkeit des Subjects innerhalb des Scrollers wird als Prozentsatz des Fortschritts verfolgt — standardmäßig befindet sich die Zeitachse bei 0%, wenn das Subject zuerst an einem Rand des Scrollers sichtbar ist, und bei 100%, wenn es den gegenüberliegenden Rand erreicht.
Wenn eine dieser beiden Zeitachsen auf ein animiertes Element angewendet wird, schreitet die Animation entlang dieser Zeitachse voran, anstatt der standardmäßigen zeitbasierten Zeitachse zu folgen.
Es ist möglich, die effektive Platzierung der Animation entlang der scroll- und Ansichtsfortschritt-Zeitachsen anzupassen, d.h. Sie können die Position definieren, an der die Animation startet und endet. Dies kann auf verschiedene Weise geschehen:
- Start- und Endwerte des Animationsbereichs können auf die Animation angewendet werden, um die Start- und Endposition der Animation entlang der Zeitachse anzupassen.
- Ansichtsfortschritt-Zeitachsen können einen Start- und/oder Endeinschub (oder -auszug) aufweisen, um die Position des Scrollports anzupassen (siehe Scroll container für weitere Details), in dem das Subject-Element als sichtbar gilt. Anders ausgedrückt, dies ermöglicht Ihnen die Festlegung von Start- und/oder Endeinschub- (oder -auszug) Werten, die die Position der Zeitachse selbst versetzen.
Scrollgetriebene Animationen in Aktion
Sie finden mehrere Werkzeuge und Demos, die scrollgetriebene Animationen in Aktion zeigen, bei Scrollgetriebene Animationswerkzeuge und Demos.
Referenz
Eigenschaften
Stellen Sie die Zeitachse ein, die den Fortschritt einer Animation steuert, und legen Sie deren Anpassungsbereich entlang dieser Zeitachse fest:
Definieren Sie benannte Scroll Fortschritt-Zeitachsen:
Definieren Sie benannte Ansichtsfortschritt-Zeitachsen:
Ändern Sie den Zeitachsenbereich:
At-Rules
CSS scrollgetriebene Animationen fügen die Möglichkeit hinzu, <timeline-range-name>
s in @keyframes
Blöcken einzuschließen, um Keyframes an speziellen Positionen innerhalb benannter Zeitachsenbereiche zu platzieren.
Funktionen
Mögliche Werte der animation-timeline
Eigenschaft zur Definition anonymer Scroll Fortschritt-Zeitachsen und anonymer Ansichtsfortschritt-Zeitachsen (d.h. implizit vom Browser definiert, anstatt explizit benannt und unter Verwendung der scroll-timeline-*
und view-timeline-*
Eigenschaften definiert):
JavaScript-Funktionen
Spezifikationen
Specification |
---|
Scroll-driven Animations |
CSS Animations Level 2 |
Web Animations Level 2 |
Siehe auch
- Elemente beim Scrollen mit scrollgetriebenen Animationen animieren auf developer.chrome.com
- CSS-Animationen
- Web Animations API