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-start

Eingeschränkt verfügbar

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

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

Syntax

css
/* Keyword or length percentage value */
animation-range-start: normal;
animation-range-start: 20%;
animation-range-start: 100px;

/* Named timeline range value */
animation-range-start: cover;
animation-range-start: contain;
animation-range-start: cover 20%;
animation-range-start: contain 100px;

/* Global values */
animation-range-start: inherit;
animation-range-start: initial;
animation-range-start: revert;
animation-range-start: revert-layer;
animation-range-start: unset;

Werte

normal

Repräsentiert den Beginn der Zeitleiste. Dies ist der Standardwert.

<length-percentage>

Gibt einen Längen- oder Prozentwert an, gemessen vom Beginn der Zeitleiste.

<timeline-range-name>

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

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

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

Beschreibung

Erlaubte Werte für die animation-range-start-Eigenschaft sind normal, eine <length-percentage>, ein <timeline-range-name> oder ein <timeline-range-name> gefolgt von einer <length-percentage>. Wenn der Wert <timeline-range-name> keine <length-percentage> enthält, wird standardmäßig 0% angenommen. Siehe animation-range für eine detaillierte Beschreibung der verfügbaren Werte. Schauen Sie sich auch den View progress timeline visualizer an, der einfach verständlich zeigt, was die verschiedenen Werte bedeuten.

Die animation-range-start ist als Rücksetz-Wert im animation-Shorthand enthalten. Das bedeutet, dass die Verwendung des animation-Shorthands den zuvor erklärten animation-range-start-Wert mit gleicher oder geringerer Spezifität auf normal zurücksetzt; das Shorthand kann nicht verwendet werden, um einen neuen animation-range-start-Wert zu setzen. Beim Erstellen von CSS-scroll-basierten Animationen sollten Sie animation-range-start nach der Deklarierung eines animation-Shorthands deklarieren, um zu vermeiden, dass der Wert auf normal zurückgesetzt wird.

Die animation-range-start, zusammen mit der animation-range-end-Eigenschaft, kann auch mit dem animation-range-Shorthand 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-start = 
[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#

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

Beispiele

Erstellen einer Scroll-Ansicht Fortschrittszeitleiste mit Bereichsstart

In diesem Beispiel wird animation-range-start auf ein Element angewendet, das über eine Scroll-Fortschrittszeitleiste animiert wird. Dadurch beginnt die Animation deutlich bevor das Element in das Scrollport eintritt.

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 überfüllt; der zusätzliche Text ist hier aus Gründen der Kürze versteckt.

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

CSS

Eine Scroll-Fortschrittszeitleiste wird definiert, indem eine scroll()-Funktion als Wert der animation-timeline-Eigenschaft gesetzt wird. Dies wird nach dem animation-Shorthand deklariert, um zu vermeiden, dass der Langform-Eigenschaftswert zurückgesetzt wird.

Wir haben auch animation-range-start gesetzt, damit die Animation früher als erwartet beginnt.

css
.animatedElement {
  background-color: deeppink;

  animation: appear 1ms linear;

  animation-timeline: scroll();
  animation-range-start: -25%;
}

@keyframes appear {
  from {
    background-color: rebeccapurple;
    opacity: 0;
    transform: scaleX(0);
  }

  to {
    background-color: darkturquoise;
    opacity: 0.75;
    transform: scaleX(0.75);
  }
}

Andere in diesem Beispiel angewandte Stile sind hier der Kürze halber verborgen.

Ergebnis

Scrollen Sie, um das Element zu sehen, das animiert wird. Beachten Sie, wie das Element bereits skaliert und halbtransparent ist, wenn es in den Viewport eintritt. Dies liegt daran, dass das Element zu einem Zeitpunkt animiert wurde, der viel früher liegt, als der Zeitpunkt, zu dem es den Viewport betrat.

Spezifikationen

Spezifikation
Scroll-driven Animations
# animation-range-start

Browser-Kompatibilität

Siehe auch