animation-range-end
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die animation-range-end CSS Eigenschaft legt den Punkt auf der Zeitleiste fest, an dem eine Animation enden soll.
Syntax
/* Keyword or length percentage value */
animation-range-end: normal;
animation-range-end: 80%;
animation-range-end: 700px;
/* Named timeline range value */
animation-range-end: cover;
animation-range-end: contain;
animation-range-end: cover 80%;
animation-range-end: contain 700px;
/* Global values */
animation-range-end: inherit;
animation-range-end: initial;
animation-range-end: revert;
animation-range-end: revert-layer;
animation-range-end: unset;
Werte
normal-
Repräsentiert das Ende der Zeitleiste. Dies ist der Standardwert.
<length-percentage>-
Gibt einen als Länge oder Prozentwert gemessenen Wert ab dem Beginn der Zeitleiste an.
<timeline-range-name>-
Gibt einen benannten Zeitleistenbereich innerhalb der gesamten Zeitleiste an. Der Bereich beginnt bei
0%. <timeline-range-name> <length-percentage>-
Gibt einen als Länge oder Prozentwert gemessenen Wert ab dem Beginn des angegebenen benannten Zeitleistenbereichs an.
Beschreibung
Die animation-range-end Eigenschaft gibt das Ende des Anwendungsbereichs der Animation an. Das Ändern des Endes des Anwendungsbereichs kann potenziell das Ende der Animation verschieben, d.h. den Punkt, an dem die Keyframes bei 100% Fortschritt landen, wenn die Wiederholungsanzahl 1 ist, und kann auch die effektive Dauer der Animation verkürzen.
Der Eigenschaftswert kann normal, ein <length-percentage> oder ein <timeline-range-name> mit einem optionalen <length-percentage> sein. Wenn der <timeline-range-name>-Wert keinen <length-percentage> enthält, wird der Prozentwert standardmäßig auf 100% gesetzt.
Die animation-range-end Eigenschaft ist in der animation Kurzform als ein nur-Zurücksetzen-Wert enthalten. Das bedeutet, dass das Verwenden der animation Kurzform jeden zuvor deklarierten animation-range-end Wert auf normal zurücksetzt; die Kurzform kann nicht verwendet werden, um einen neuen animation-range-end Wert festzulegen. Beim Erstellen von CSS Scroll-Driven-Animationen sollten Sie animation-range-end nach jeder animation Kurzform deklarieren, um zu vermeiden, dass der Wert auf normal zurückgesetzt wird.
Die animation-range-end Eigenschaft kann zusammen mit der animation-range-start Eigenschaft auch durch die Kurzform animation-range festgelegt werden.
Formale Definition
| Anfangswert | normal |
|---|---|
| Anwendbar auf | alle Elemente |
| Vererbt | Nein |
| Prozentwerte | Relative to the specified named timeline range if specified, otherwise relative to the entire timeline |
| Berechneter Wert | A list where each item may be 'normal', a length percentage, or a timeline range name and a length percentage |
| Animationstyp | Not animatable |
Formale Syntax
animation-range-end =
[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#
<length-percentage> =
<length> |
<percentage>
Beispiele
>Erstellen einer View-Progress-Zeitleiste mit einem Reichweitenende
In diesem Beispiel wird die animation-range-end auf ein Element angewendet, das über eine View-Progress-Zeitleiste animiert wird. Dies sorgt dafür, dass die Animation ihr letztes Keyframe erreicht, bevor das Element das Ende des umgebenden Viewports erreicht.
HTML
In der Mitte eines langen Textblocks haben wir ein Element eingefügt, das wir animieren werden. Wir haben viel Text hinzugefügt, um sicherzustellen, dass der Inhalt seinen Container überläuft; der zusätzliche Text ist hier aus Gründen der Übersichtlichkeit ausgeblendet.
<div class="animatedElement">
Wir haben auch ein Kontrollkästchen hinzugefügt, das die animation-fill-mode Eigenschaft umschalten wird, damit Sie sehen können, wie sich diese Eigenschaft auf Animationen mit verkürzten Zeitleisten auswirkt.
<label>
<input type="checkbox" /> Add <code>animation-fill-mode: forwards;</code>
</label>
CSS
Wir haben eine View-Progress-Zeitleiste definiert, indem wir eine view() Funktion als Wert der animation-timeline Eigenschaft festgelegt haben. Diese wird nach der animation Kurzform deklariert, um zu vermeiden, dass der Langformwert zurückgesetzt wird.
Wir haben auch animation-range-end gesetzt, um die Animation früher als erwartet enden zu lassen.
.animatedElement {
background-color: deeppink;
animation: appear 1ms linear;
animation-timeline: view();
animation-range-end: exit 25%;
}
@keyframes appear {
from {
background-color: rebeccapurple;
opacity: 0;
transform: scaleX(0);
}
to {
background-color: darkturquoise;
opacity: 0.75;
transform: scaleX(0.75);
}
}
Wenn das Kontrollkästchen aktiviert ist, wird die animation-fill-mode Eigenschaft auf das animierte Element angewendet:
:has(:checked) .animatedElement {
animation-fill-mode: forwards;
}
Die anderen in diesem Beispiel angewendeten Stile sind aus Gründen der Übersichtlichkeit hier ausgeblendet.
Ergebnis
Scrollen Sie, um das Element zu animieren. Schalten Sie dann das Kontrollkästchen am Ende des Textblocks um und scrollen Sie erneut. Beachten Sie, wie das Element fertig animiert, wenn es 75% des Weges durch den Viewport erreicht, und wie es in seinen Standardzustand zurückkehrt, wenn die animation-fill-mode Eigenschaft nicht angewendet wird.
Spezifikationen
| Specification |
|---|
| Scroll-driven Animations> # animation-range-end> |