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

View in English Always switch to English

timeline-trigger-name CSS property

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die CSS-Eigenschaft timeline-trigger-name legt die Kennung oder Kennungen eines Auslösers für eine scrollgesteuerte Animation fest.

Syntax

css
/* Keyword */
timeline-trigger-name: none;

/* Single dashed ident */
timeline-trigger-name: --my-trigger;
timeline-trigger-name: --my-other-trigger;

/* Multiple dashed idents */
timeline-trigger-name: --my-trigger, --my-other-name;

/* Global values */
timeline-trigger-name: inherit;
timeline-trigger-name: initial;
timeline-trigger-name: revert;
timeline-trigger-name: revert-layer;
timeline-trigger-name: unset;

Werte

Der Wert besteht aus einem oder mehreren durch Kommas getrennten <dashed-ident>-Werten oder dem Schlüsselwort none.

none

Gibt an, dass das Element keine Auslöser für scrollgesteuerte Animationen definiert.

<dashed-ident>

Gibt den Namen des Timeline-Auslösers an.

Beschreibung

Die Eigenschaft timeline-trigger-name legt einen oder mehrere Namen zur Kennzeichnung eines Auslösers für eine scrollgesteuerte CSS-Animation fest. Diese Kennung wird im Wert der Eigenschaft animation-trigger verwendet.

Zum Beispiel:

css
.trigger {
  timeline-trigger-name: --my-trigger;
  timeline-trigger-source: view();
}

Ein Element mit diesen Deklarationen erstellt einen Auslöser mit dem Namen --my-trigger. Die Deklaration timeline-trigger-source ist erforderlich, um eine Timeline zu erstellen, die das Auslösen von Animationen steuert. In diesem Fall erstellt der Wert view() eine anonyme View-Progress-Timeline.

Die resultierende ViewTimeline verfolgt die Position des Elements .trigger entlang der Blockachse des nächstgelegenen scrollbaren Vorfahren. Der Auslöser wird aktiviert und deaktiviert, wenn das verfolgte Element an bestimmte Positionen innerhalb des Scrollports gescrollt wird.

Bei jedem animierten Element, dessen Eigenschaft animation-trigger auf --my-trigger gesetzt ist, wird die Animation durch den Auslöser --my-trigger gesteuert:

css
.animated {
  animation: rotate 3s infinite linear both;
  animation-trigger: --my-trigger play-once;
}

Jeder animation-trigger-Wert enthält zwei oder drei Bestandteile: den <dashed-ident>-Wert, der den Auslöser kennzeichnet, und ein oder zwei <animation-action>-Schlüsselwörter. Diese legen fest, was bei der Aktivierung und gegebenenfalls bei der Deaktivierung des Auslösers geschehen soll. In diesem Fall wird die Animation bei der Aktivierung einmal abgespielt.

Das animierte Element kann einen eigenen Auslöser erstellen. Setzen Sie dazu seine Eigenschaften timeline-trigger-name und animation-trigger so, dass sie denselben <dashed-ident>-Wert enthalten:

css
.animatedAndTrigger {
  animation: rotate 3s infinite linear both;
  animation-trigger: --my-trigger play-once;

  timeline-trigger-name: --my-trigger;
  timeline-trigger-source: view();
}

Die Eigenschaft timeline-trigger-name kann zusammen mit den Eigenschaften timeline-trigger-source, timeline-trigger-activation-range und timeline-trigger-active-range auch über die Kurzschreibweise timeline-trigger festgelegt werden.

Mehrere Auslösernamen

Sie können im timeline-trigger-name-Wert desselben Auslösers mehrere durch Kommas getrennte <dashed-ident>-Werte angeben. Dadurch kann über mehrere Kennungen auf ihn verwiesen werden. Das kann nützlich sein, wenn Sie mehrere Komponenten in eine Seite einbinden, deren Animationen Sie auslösen möchten, deren vordefinierte animation-trigger-Werte Sie aber nicht ändern können.

Mit mehreren timeline-trigger-name-Werten können Sie einen Auslöser für alle Animationen erstellen:

css
.trigger {
  timeline-trigger-name: --animation-trigger-1, --animation-trigger-2;
  timeline-trigger-source: view();
}

Wenn Sie denselben <dashed-ident>-Wert mehrfach in derselben timeline-trigger-name-Liste angeben, definiert nur das letzte Vorkommen einen Auslöser. Die vorherigen Vorkommen haben keine Wirkung.

Wenn mehrere Elemente Auslöser mit demselben Namen definieren, wird der Auslöser des letzten Elements in der Quellreihenfolge verwendet, sofern der Gültigkeitsbereich nicht eingeschränkt ist. Weitere Informationen finden Sie unter trigger-scope.

Formale Definition

Anfangswertnone
Anwendbar aufalle Elemente
VererbtNein
Berechneter Wertwie angegeben
AnimationstypNot animatable

Formale Syntax

timeline-trigger-name = 
none |
<dashed-ident>#
Diese Syntax spiegelt den neuesten Standard gemäß Animation Triggers wider. Möglicherweise haben nicht alle Browser jeden Teil implementiert. Siehe Browserkompatibilität für Informationen zur Unterstützung.

Beispiele

Grundlegende Verwendung

Dieses Beispiel zeigt, wie Sie eine einfache scrollgesteuerte Animation erstellen. Mit der Eigenschaft timeline-trigger-name benennen wir einen Auslöser und verweisen in der Eigenschaft animation-trigger eines animierten Elements auf diesen Namen.

HTML

Unser Markup enthält zwei <div>-Elemente: eines, das animiert wird, und eines, das einen Auslöser erstellt. Hinzu kommt Textinhalt, durch den die Seite scrollbar wird. Der Textinhalt ist der Kürze halber ausgeblendet.

html
<div class="animated">I am animated</div>

...

<div class="trigger">I create the trigger</div>

...

CSS

Die Eigenschaft position des animierten <div>-Elements wird auf fixed gesetzt. Dadurch wird es nahe der oberen linken Ecke des Scrollports positioniert, sodass wir erkennen können, wann seine Animation beginnt und pausiert.

css
.animated {
  position: fixed;
  top: 25px;
  left: 25px;
}

Als Nächstes definieren wir die @keyframes für die Animation rotate, die wir später verwenden:

css
@keyframes rotate {
  from {
    rotate: 0deg;
  }

  to {
    rotate: 360deg;
  }
}

Mit der Kurzschreibweise animation wenden wir die Animation rotate auf das Element .animated an. Ohne einen zugeordneten Auslöser würde das Element beim Laden der Seite mit der Animation beginnen. Durch die Eigenschaft animation-trigger wird daraus eine ausgelöste Animation. Ihr Wert verweist auf den timeline-trigger-name --t und enthält zwei <animation-action>-Werte — play und pause. Diese legen fest, dass die Animation bei der Aktivierung abgespielt und bei der Deaktivierung pausiert wird.

css
.animated {
  animation: rotate 3s infinite linear;
  animation-trigger: --t play pause;
}

Das Element .trigger erstellt den Auslöser für das Element .animated mithilfe der folgenden Eigenschaften:

  • Ein timeline-trigger-name mit dem Wert --t. Dieser entspricht der Kennung, auf die im animation-trigger-Wert des animierten Elements verwiesen wird, und verknüpft so die beiden Elemente.
  • Ein timeline-trigger-source mit dem Wert view(). Dadurch wird der Timeline-Auslöser als View-Progress-Timeline festgelegt und der nächstgelegene scrollbare Vorfahr als Element, das die Timeline bereitstellt.
css
.trigger {
  timeline-trigger-name: --t;
  timeline-trigger-source: view();
}

Ergebnis

Versuchen Sie, den Inhalt nach oben zu scrollen. Sobald ein Teil des verfolgten Elements .trigger im Scrollport erscheint, wird die Animation abgespielt. Sobald es den Scrollport an einer der beiden Seiten vollständig verlassen hat, pausiert die Animation.

Das animierte Element selbst als Auslöser verwenden

Dieses Beispiel zeigt, wie ein animiertes Element seinen eigenen Auslöser erstellen kann.

HTML

Diesmal enthält unser Markup nur ein <div>-Element.

html
<div>I create my own trigger</div>

Der Textinhalt, durch den die Seite scrollbar wird, ist der Kürze halber ausgeblendet.

CSS

Wir definieren eine Keyframe-Animation namens invert-colors, die die Vordergrund- und Hintergrundfarben umkehrt:

css
@keyframes invert-colors {
  from {
    background: orange;
    color: black;
  }

  to {
    background: black;
    color: orange;
  }
}

Wir setzen einen animation-trigger-Wert, der auf den timeline-trigger-name --t verweist. Außerdem geben wir zwei <animation-action>-Werte an — play-forwards und play-backwards. Damit wird die Animation bei der Aktivierung vorwärts und bei der Deaktivierung rückwärts abgespielt.

Anschließend legen wir für dasselbe <div> die folgenden Eigenschaften fest:

  • Ein timeline-trigger-name mit dem Wert --t. Damit wird festgelegt, dass das <div> den Auslöser für seine eigene Animation erstellt.
  • Ein timeline-trigger-source mit dem Wert view(). Dadurch wird der Timeline-Auslöser als View-Progress-Timeline festgelegt und der nächstgelegene scrollbare Vorfahr als Element, das die Timeline bereitstellt.
  • Ein timeline-trigger-activation-range mit dem Wert contain. Damit wird der Auslöser aktiviert, wenn sich das verfolgte Element vollständig innerhalb des Scrollports befindet. Da timeline-trigger-active-range standardmäßig den Wert auto hat, entspricht der aktive Bereich dem Aktivierungsbereich. Der Auslöser wird daher deaktiviert, sobald sich das Element nicht mehr vollständig innerhalb des Scrollports befindet. Im Gegensatz dazu würden die Standardwerte cover für den Aktivierungsbereich und den aktiven Bereich den Auslöser aktivieren, sobald ein Teil des Elements in den Scrollport eintritt, und ihn erst deaktivieren, wenn das Element den Scrollport vollständig verlassen hat. Die rückwärts abgespielte Animation würde dann stattfinden, wenn das Element nicht mehr sichtbar ist.
css
div {
  animation: invert-colors 0.6s ease-in both;

  animation-trigger: --t play-forwards play-backwards;

  timeline-trigger-name: --t;
  timeline-trigger-source: view();
  timeline-trigger-activation-range: contain;
}

Ergebnis

Versuchen Sie, den Inhalt nach oben zu scrollen. Die Animation des verfolgten Elements wird abgespielt, sobald es vollständig in den Scrollport eingetreten ist, und pausiert, sobald es beginnt, den Scrollport zu verlassen.

Spezifikationen

Spezifikation
Animation Triggers
# propdef-timeline-trigger-name

Browser-Kompatibilität

Siehe auch