CSS-Eigenschaft timeline-trigger-activation-range
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die CSS-Kurzschreibweise timeline-trigger-activation-range legt den Anfang und das Ende des Aktivierungsbereichs eines Triggers für eine scrollgesteuerte Animation fest.
Zugehörige Eigenschaften
Diese Eigenschaft ist eine Kurzschreibweise für die folgenden CSS-Eigenschaften:
Syntax
/* Keyword */
timeline-trigger-activation-range: normal;
/* Range start only */
/* Offset only */
timeline-trigger-activation-range: 40%;
timeline-trigger-activation-range: 200px;
/* Named timeline only */
timeline-trigger-activation-range: contain;
timeline-trigger-activation-range: entry;
/* Named timeline and offset value */
timeline-trigger-activation-range: exit 50%;
timeline-trigger-activation-range: contain 150px;
/* Range start and end */
timeline-trigger-activation-range: 20% 80%;
timeline-trigger-activation-range: entry exit;
timeline-trigger-activation-range: normal 20%;
timeline-trigger-activation-range: 20% normal;
/* Offset on start only */
timeline-trigger-activation-range: entry 10% 90%;
/* Offset on end only */
timeline-trigger-activation-range: 200px exit 300px;
/* Named timeline and offset for both start and end */
timeline-trigger-activation-range: entry 0% exit 50%;
timeline-trigger-activation-range: contain 100px contain 90%;
/* Multiple ranges */
timeline-trigger-activation-range:
contain,
entry 0% exit 50%;
/* Global values */
timeline-trigger-activation-range: inherit;
timeline-trigger-activation-range: initial;
timeline-trigger-activation-range: revert;
timeline-trigger-activation-range: revert-layer;
timeline-trigger-activation-range: unset;
Werte
Diese Eigenschaft wird als kommagetrennte Liste von Animationsbereichen angegeben. Jeder Animationsbereich besteht aus einem Wert für timeline-trigger-activation-range-start und optional einem Wert für timeline-trigger-activation-range-end.
<'timeline-trigger-activation-range-start'>-
Das Schlüsselwort
normal, ein<length-percentage>, ein<timeline-range-name>oder ein<timeline-range-name>gefolgt von einem<length-percentage>. Dieser Wert gibttimeline-trigger-activation-range-startan. Wird ein<timeline-range-name>ohne<length-percentage>festgelegt, ist der Standardwert für<length-percentage>0%. <'timeline-trigger-activation-range-end'>-
Das Schlüsselwort
normal, ein<length-percentage>, ein<timeline-range-name>oder ein<timeline-range-name>gefolgt von einem<length-percentage>. Dieser Wert gibttimeline-trigger-activation-range-endan. Wird ein<timeline-range-name>ohne<length-percentage>festgelegt, ist der Standardwert für<length-percentage>100%.
Prozentwerte beziehen sich auf die Länge des benannten Timeline-Bereichs, sofern einer angegeben ist. Andernfalls beziehen sie sich auf die durch normal repräsentierte Timeline.
Beschreibung
Mit der Eigenschaft timeline-trigger-activation-range können Sie den Anfang oder sowohl den Anfang als auch das Ende des Aktivierungsbereichs eines Triggers ausdrücklich festlegen. Die Eigenschaft setzt timeline-trigger-activation-range-start und timeline-trigger-activation-range-end in einer einzigen Deklaration. Beide Werte können als Timeline-Bereich, als Versatz oder als Kombination aus beidem angegeben werden. Der Versatz für Anfang und Ende wird jeweils vom Anfang des zugehörigen Bereichs aus gemessen. Wird nur der Wert für timeline-trigger-activation-range-start angegeben, erhält timeline-trigger-activation-range-end den Standardwert normal. Dieser entspricht je nach Wert von timeline-trigger-source entweder contain 100% oder scroll 100%.
Der Aktivierungsbereich eines Triggers ist der Bereich entlang des zugehörigen Scrollports, in dem ein Trigger für eine scrollgesteuerte CSS-Animation aktiviert wird. Die Aktivierung erfolgt, wenn das beobachtete Element in den Aktivierungsbereich eintritt. Die Deaktivierung erfolgt, wenn es den aktiven Bereich verlässt.
Der Standardwert ist normal. Damit wird der Aktivierungsbereich auf den standardmäßigen benannten Bereich gesetzt. Dieser hängt von timeline-trigger-source ab: Bei einer View-Progress-Timeline entspricht er cover, bei einer Scroll-Progress-Timeline entspricht er scroll. Die Standardversätze sind 0% für den Anfang und 100% für das Ende des Aktivierungsbereichs. Somit entspricht normal entweder cover 0% cover 100% oder scroll 0% scroll 100%.
Mit anderen Werten für timeline-trigger-activation-range können Sie Folgendes festlegen:
- Versätze für Anfang und Ende relativ zum Bereich
normal -
Ein
<length>- oder<percentage>-Wert gibt einen Versatz vom Anfang der Timelinenormalan. Deren Standardwert ist wiederumcoverfür eineview()-Progress-Timeline als Quelle undscrollfür einescroll()-Progress-Timeline als Quelle. Negative Werte verschieben Anfang und Ende nach außen und verlängern so den Aktivierungsbereich. Positive Werte verschieben sie nach innen und verkürzen ihn. - Bestimmte benannte Bereiche
-
Wird ein
<timeline-range-name>-Wert ohne Versatz festgelegt, beträgt der Standardversatz0%für den Anfang und100%für das Ende. Zu den benannten Timeline-Bereichen gehörencover,contain,entry,exit,entry-crossing,exit-crossingundscroll. Weitere Informationen finden Sie unter Timeline-Bereichsnamen verstehen. - Versätze relativ zu bestimmten benannten Bereichen
-
Werden für den Anfang oder das Ende sowohl ein
<timeline-range-name>als auch ein<length>- oder<percentage>-Wert angegeben, ist der Wert ein Längen- oder Prozentversatz vom Anfang des benannten Bereichs. Prozentwerte beziehen sich auf die gesamte Länge des angegebenen benannten Bereichs. Weitere Informationen finden Sie unter Einzüge mithilfe von Prozentwerten festlegen.
In jedem Bestandteil eines timeline-trigger-activation-range-Werts muss der <timeline-range-name>-Wert vor dem <length>- oder <percentage>-Versatz stehen. Im folgenden Beispiel könnte man annehmen, dass timeline-trigger-activation-range-start auf contain und timeline-trigger-activation-range-end auf 50% gesetzt wird. Das ist jedoch nicht der Fall: timeline-trigger-activation-range-start wird auf contain 50% gesetzt, während timeline-trigger-activation-range-end den Standardwert normal erhält:
timeline-trigger-activation-range: contain 50%;
Um timeline-trigger-activation-range-start auf contain und timeline-trigger-activation-range-end auf 50% zu setzen, geben Sie 0% als standardmäßigen Anfangsversatz ausdrücklich an:
timeline-trigger-activation-range: contain 0% 50%;
Standardmäßig entspricht der aktive Bereich dem Aktivierungsbereich. Soll der aktive Bereich länger sein als der Aktivierungsbereich, verwenden Sie die Eigenschaften timeline-trigger-active-range-start und timeline-trigger-active-range-end oder die Kurzschreibweise timeline-trigger-active-range. Das ist nützlich, wenn Sie eine Animation in einem kleinen Aktivierungsbereich auslösen, den Trigger aber über einen größeren Bereich hinweg aktiv halten möchten.
Die Eigenschaft timeline-trigger-activation-range kann zusammen mit timeline-trigger-name, timeline-trigger-source und timeline-trigger-active-range auch über die Kurzschreibweise timeline-trigger festgelegt werden.
Explizite Werte und Standardwerte für timeline-trigger-activation-range
Hinsichtlich expliziter Werte und Standardwerte funktioniert timeline-trigger-activation-range genauso wie die Eigenschaft animation-range. Weitere Informationen finden Sie unter:
Mehrere Bereiche angeben
Werden in einer kommagetrennten timeline-trigger-activation-range-Deklaration mehrere Werte angegeben, gilt jeder Wert für einen Timeline-Trigger, und zwar in der Reihenfolge, in der die Namen in der Eigenschaft timeline-trigger-name stehen. Stimmen die Anzahl der Trigger und die Anzahl der timeline-trigger-activation-range-Werte nicht überein, werden die Werte wie bei mehreren Werten für Animationseigenschaften angewendet:
- Gibt es mehr
timeline-trigger-activation-range-Werte alstimeline-trigger-name-Werte, werden die überzähligen Bereichswerte verworfen. - Gibt es mehr Triggernamen als Bereiche, werden die
timeline-trigger-activation-range-Werte wiederholt, bis jedemtimeline-trigger-name-Wert eintimeline-trigger-activation-range-Wert zugewiesen ist. - Sind mehrere
timeline-trigger-name-Werte, aber nur eintimeline-trigger-activation-range-Wert festgelegt, gilt dieser für alletimeline-trigger-name-Werte.
Formale Definition
| Anfangswert | wie die jeweiligen Kurzschreibweisen: |
|---|---|
| Anwendbar auf | alle Elemente |
| Vererbt | Nein |
| Prozentwerte | wie die jeweiligen Kurzschreibweisen:
|
| Berechneter Wert | wie die jeweiligen Kurzschreibweisen:
|
| Animationstyp | Not animatable |
Formale Syntax
timeline-trigger-activation-range =
[ <'timeline-trigger-activation-range-start'> <'timeline-trigger-activation-range-end'>? ]#
<timeline-trigger-activation-range-start> =
[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#
<timeline-trigger-activation-range-end> =
[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#
<length-percentage> =
<length> |
<percentage>
Beispiele
>Grundlegende Verwendung
In diesem Beispiel verkleinern wir den Aktivierungsbereich eines Triggers für eine scrollgesteuerte Animation, indem wir einen eigenen Wert für timeline-trigger-activation-range festlegen.
HTML
Unser Markup enthält zwei <div>-Elemente – eines, das animiert werden soll, und eines, an dem ein Trigger erstellt wird – sowie Text, damit die Seite scrollbar ist. Der Textinhalt ist hier der Kürze halber ausgeblendet.
<div class="animated">I am animated</div>
...
<div class="trigger">I create the trigger</div>
...
CSS
Die Eigenschaft position des Elements .animated wird auf fixed gesetzt. Dadurch wird es nahe der oberen linken Ecke des Scrollports positioniert, sodass wir sehen können, wann seine Animation beginnt und endet.
.animated {
position: fixed;
top: 25px;
left: 25px;
}
Als Nächstes definieren wir die @keyframes für eine rotate-Animation:
@keyframes rotate {
from {
rotate: 0deg;
}
to {
rotate: 360deg;
}
}
Über die Kurzschreibweise animation wird die rotate-Animation auf das Element .animated angewendet. Ohne zugehörigen Trigger würde die Animation des Elements beim Laden der Seite beginnen. Durch die Eigenschaft animation-trigger wird sie zu einer durch einen Trigger gesteuerten Animation. Der Wert verweist auf einen timeline-trigger-name mit dem Wert --t und gibt zwei <animation-action>-Werte an: play und pause. Diese legen fest, dass die Animation bei der Aktivierung abgespielt und bei der Deaktivierung pausiert wird.
.animated {
animation: rotate 3s infinite linear;
animation-trigger: --t play pause;
}
Das Element .trigger erstellt den Trigger für das Element .animated mithilfe der folgenden Eigenschaften:
- Ein
timeline-trigger-namemit dem Wert--t. Dieser entspricht dem Bezeichner, auf den im Wert der Eigenschaftanimation-triggerdes Elements.animatedverwiesen wird, und verknüpft so die beiden Elemente. - Ein
timeline-trigger-sourcemit dem Wertview(). Damit wird der Timeline-Trigger als View-Progress-Timeline festgelegt, deren Quelle der nächstgelegene scrollbare Vorfahre des Elements ist. - Ein
timeline-trigger-activation-rangemit dem Wertentry 50% exit 50%. Der Bereichentryreicht von dem Moment, in dem das Trigger-Element beginnt, in den Scrollport einzutreten, bis es vollständig eingetreten ist. Der Bereichexitreicht von dem Moment, in dem das Trigger-Element beginnt, den Scrollport zu verlassen, bis es ihn vollständig verlassen hat. Durch diesen Wert beginnt der Aktivierungsbereich des Triggers bei50%des Bereichsentryund endet bei50%des Bereichsexit.
.trigger {
timeline-trigger-name: --t;
timeline-trigger-source: view();
timeline-trigger-activation-range: entry 50% exit 50%;
}
Ergebnis
Scrollen Sie den Inhalt nach oben und unten. Die Animation beginnt abzuspielen, sobald 50% des beobachteten Elements .trigger aus einer der beiden Richtungen in den Scrollport eingetreten sind. Sie pausiert, sobald 50% des Trigger-Elements den Scrollport an einer der beiden Seiten verlassen haben.
Mehrere Bereichswerte vergleichen
Dieses Beispiel entspricht dem vorherigen, ermöglicht aber die Auswahl verschiedener Aktivierungsbereiche, um deren Auswirkungen zu vergleichen.
Das Markup entspricht dem vorherigen Beispiel, außer dass ein <select>-Element hinzugefügt wurde, mit dem sich der Wert von timeline-trigger-activation-range ändern lässt. Wird ein neuer Wert ausgewählt, wird er mithilfe von JavaScript auf das Trigger-Element angewendet. HTML und JavaScript sind hier der Kürze halber ausgeblendet.
CSS
Das CSS entspricht dem vorherigen Beispiel, allerdings wurde der Wert für timeline-trigger-activation-range weggelassen. Bis ein Bereichswert ausgewählt wird, gilt daher der Standardwert normal, der in diesem Fall cover 0% cover 100% entspricht.
.animated {
animation: rotate 3s infinite linear;
animation-trigger: --t play pause;
}
.trigger {
timeline-trigger-name: --t;
timeline-trigger-source: view();
}
Ergebnis
Wählen Sie verschiedene Bereichswerte aus und scrollen Sie dann das beobachtete Element im Scrollport nach oben und unten. So sehen Sie, wo das animierte Element seine Drehung beginnt und beendet.
Spezifikationen
| Spezifikation |
|---|
| Animation Triggers> # propdef-timeline-trigger-activation-range> |