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

View in English Always switch to English

animation-range-end

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Die animation-range-end CSS Eigenschaft legt den Punkt auf der Zeitleiste fest, an dem eine Animation enden soll.

Syntax

css
/* 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 Längen- oder Prozentwert an, der vom Beginn der Zeitleiste gemessen wird.

<timeline-range-name>

Gibt einen benannten Zeitleistenbereich innerhalb der gesamten Zeitleiste an. Der Bereich beginnt bei 0%.

<timeline-range-name> <length-percentage>

Gibt einen Längen- oder Prozentwert an, der vom Beginn des angegebenen benannten Zeitleistenbereichs gemessen wird.

Beschreibung

Die animation-range-end Eigenschaft gibt das Ende des Anwendungsbereichs einer Animation an. Eine Änderung des Endes des Anwendungsbereichs kann potenziell das Ende der Animation verschieben, das heißt, der Punkt, an dem Keyframes mit 100% Fortschritt landen, wenn die Anzahl der Wiederholungen 1 beträgt, 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 Prozentsatz auf 100% festgelegt.

Die animation-range-end Eigenschaft ist in der animation Kurzform als ein Nur-Zurücksetzungswert enthalten. Dies bedeutet, dass die Verwendung der animation Kurzform jegliche zuvor deklarierte animation-range-end Werte auf normal zurücksetzt; die Kurzform kann nicht verwendet werden, um einen neuen animation-range-end Wert zu setzen. Beim Erstellen von CSS scroll-gesteuerten Animationen sollten Sie animation-range-end nach der Deklaration jeder animation Kurzform angeben, 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 mithilfe der animation-range Kurzform gesetzt werden.

Formale Definition

Anfangswertnormal
Anwendbar aufalle Elemente
VererbtNein
ProzentwerteRelative to the specified named timeline range if specified, otherwise relative to the entire timeline
Berechneter WertA list where each item may be 'normal', a length percentage, or a timeline range name and a length percentage
AnimationstypNot animatable

Formale Syntax

animation-range-end = 
[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#

<length-percentage> =
<length> |
<percentage>

Beispiele

Erstellen einer Ansichtsfortschritts-Zeitleiste mit einem Bereichsende

In diesem Beispiel wird animation-range-end auf ein Element angewendet, das über eine Ansichtsfortschritts-Zeitleiste animiert wird. Dies bewirkt, dass die Animation ihren letzten Keyframe erreicht, bevor das Element das Ende seines 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 Kürze verborgen.

html
<div class="animatedElement">

Wir haben auch ein Kontrollkästchen hinzugefügt, das die animation-fill-mode Eigenschaft umschaltet, sodass Sie sehen können, wie sich diese Eigenschaft auf Animationen mit verkürzten Zeitleisten auswirkt.

html
<label>
  <input type="checkbox" /> Add <code>animation-fill-mode: forwards;</code>
</label>

CSS

Wir haben eine Ansichtsfortschritts-Zeitleiste definiert, indem wir die view() Funktion als Wert der animation-timeline Eigenschaft gesetzt haben. Dies wird nach der animation Kurzform deklariert, um zu vermeiden, dass der Langform-Eigenschaftswert zurückgesetzt wird.

Wir haben auch animation-range-end gesetzt, um die Animation früher enden zu lassen als erwartet.

css
.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:

css
:has(:checked) .animatedElement {
  animation-fill-mode: forwards;
}

Die anderen in diesem Beispiel angewendeten Stile sind hier aus Gründen der Kürze verborgen.

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 die Animation beendet, wenn es 75% des Weges durch den Viewport ist, und wie es zu seinem Standardzustand zurückkehrt, wenn die animation-fill-mode Eigenschaft nicht angewendet wird.

Spezifikationen

Spezifikation
Scroll-driven Animations
# animation-range-end

Browser-Kompatibilität

Siehe auch