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 CSS property

Eingeschränkt verfügbar

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

Want more browser support for this feature? Tell us why.

Die CSS-Eigenschaft animation-range-end 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;

/* Multiple values */
animation-range-end:
  cover 80%,
  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

Diese Eigenschaft wird als kommagetrennte Liste von Werten angegeben. Jeder Wert kann eine der folgenden Formen haben:

normal

Steht für das Ende der Zeitleiste. Dies ist der Standardwert.

<length-percentage>

Gibt einen Längen- oder Prozentwert an, der vom Anfang der Zeitleiste aus gemessen wird.

<timeline-range-name>

Gibt einen benannten Zeitleistenbereich innerhalb der gesamten Zeitleiste an. Der Bereich endet bei 100%.

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

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

Beschreibung

Die Eigenschaft animation-range-end legt das Ende des Bereichs fest, an den die Animation gebunden ist. Wenn dieses Ende geändert wird, kann sich auch das Ende der Animation verschieben – also der Punkt, an dem Keyframes mit einem Fortschritt von 100% liegen, wenn die Anzahl der Durchläufe 1 beträgt. Außerdem kann sich dadurch 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 für <timeline-range-name> kein <length-percentage> angegeben ist, beträgt der Prozentwert standardmäßig 100%.

Wenn Sie mehrere kommagetrennte Werte angeben, gelten diese für die Animationen in der Reihenfolge, in der die Werte von animation-name aufgeführt sind. Siehe Mehrere Werte für Animationseigenschaften festlegen.

Die Eigenschaft animation-range-end ist in der Kurzschreibweise animation nur als zurückzusetzender Wert enthalten. Das bedeutet, dass die Kurzschreibweise animation einen zuvor deklarierten Wert von animation-range-end auf normal zurücksetzt; mit ihr lässt sich kein neuer Wert für animation-range-end festlegen. Wenn Sie scrollgesteuerte CSS-Animationen erstellen, sollten Sie animation-range-end nach einer etwaigen animation-Kurzschreibweise deklarieren, damit der Wert nicht auf normal zurückgesetzt wird.

Die Eigenschaft animation-range-end kann zusammen mit animation-range-start auch über die Kurzschreibweise animation-range festgelegt 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

Eine Zeitleiste für den Ansichtsfortschritt mit einem Bereichsende erstellen

In diesem Beispiel wird animation-range-end auf ein Element angewendet, das über eine Zeitleiste für den Ansichtsfortschritt animiert wird. Dadurch erreicht die Animation ihren letzten Keyframe deutlich bevor das Element das Ende des Viewports seines Containers erreicht.

HTML

In der Mitte eines langen Textblocks haben wir ein Element eingefügt, das animiert werden soll. Wir haben viel Text hinzugefügt, damit der Inhalt über seinen Container hinausragt; der zusätzliche Text ist hier der Kürze halber ausgeblendet.

html
<div class="animatedElement"></div>

Außerdem haben wir ein Kontrollkästchen eingefügt, mit dem sich die Eigenschaft animation-fill-mode ein- und ausschalten lässt. So können Sie sehen, 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 Zeitleiste für den Ansichtsfortschritt definiert, indem wir eine view()-Funktion als Wert der Eigenschaft animation-timeline festgelegt haben. Diese wird nach der Kurzschreibweise animation deklariert, damit der Wert der einzelnen Eigenschaft nicht zurückgesetzt wird.

Außerdem haben wir animation-range-end festgelegt, damit die Animation früher als erwartet endet.

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 Eigenschaft animation-fill-mode auf das animierte Element angewendet:

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

Die übrigen Formatierungen dieses Beispiels sind der Kürze halber ausgeblendet.

Ergebnis

Scrollen Sie, um die Animation des Elements zu sehen. Aktivieren oder deaktivieren Sie dann das Kontrollkästchen am Ende des Textblocks und scrollen Sie erneut. Beachten Sie, dass die Animation des Elements endet, sobald es 75 % des Weges durch den Viewport zurückgelegt hat. Wenn die Eigenschaft animation-fill-mode nicht angewendet wird, kehrt das Element an diesem Punkt in seinen Ausgangszustand zurück.

Spezifikationen

Spezifikation
Scroll-driven Animations
# animation-range-end

Browser-Kompatibilität

Siehe auch