timeline-trigger-activation-range-start 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-activation-range-start legt den Anfang des Aktivierungsbereichs eines Triggers für eine scrollgesteuerte Animation fest.
Syntax
/* Keyword */
timeline-trigger-activation-range-start: normal;
/* <length-percentage> */
timeline-trigger-activation-range-start: 20%;
timeline-trigger-activation-range-start: 350px;
/* Named timeline range */
timeline-trigger-activation-range-start: cover;
timeline-trigger-activation-range-start: exit;
/* Named timeline with <length-percentage> */
timeline-trigger-activation-range-start: entry 40%;
timeline-trigger-activation-range-start: contain -20px;
/* Multiple range start values */
timeline-trigger-activation-range-start:
contain,
entry -10%;
/* Global values */
timeline-trigger-activation-range-start: inherit;
timeline-trigger-activation-range-start: initial;
timeline-trigger-activation-range-start: revert;
timeline-trigger-activation-range-start: revert-layer;
timeline-trigger-activation-range-start: unset;
Werte
Diese Eigenschaft wird als kommagetrennte Liste der folgenden Werte angegeben:
normal-
Der Standardwert. Entspricht
cover 0%für eine View-Progress-Timeline alstimeline-trigger-sourceundscroll 0%für eine Scroll-Progress-Timeline. <length-percentage>-
Gibt einen Versatz als
<length>oder<percentage> an, gemessen vom Anfang dernormal-Timeline. Prozentwerte beziehen sich auf die Länge desnormal-Timeline-Bereichs. <timeline-range-name>-
Gibt den Anfang (
0%) des Timeline-Bereichscover,contain,entry,exit,entry-crossing,exit-crossingoderscrollan. <timeline-range-name><length-percentage>-
Gibt einen Längen- oder Prozentversatz an, gemessen vom Anfang des angegebenen benannten Timeline-Bereichs. Prozentwerte beziehen sich auf die Länge der benannten Timeline.
Beschreibung
Mit der Eigenschaft timeline-trigger-activation-range-start können Sie den Anfang des Aktivierungsbereichs eines Triggers ausdrücklich festlegen. Der Wert wird als Timeline-Bereich, Versatz oder Kombination aus beidem angegeben.
Der Aktivierungsbereich eines Triggers ist der Bereich entlang des zugehörigen Scrollports, innerhalb dessen 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 Wert normal setzt den Anfang des Aktivierungsbereichs auf den Anfang des standardmäßigen benannten Bereichs. Dies entspricht cover 0% bei einer View-Progress-Timeline und scroll 0% bei einer Scroll-Progress-Timeline.
Mit anderen Werten für timeline-trigger-activation-range-start können Sie Folgendes festlegen:
- Einen Versatz gegenüber dem Bereich
normal -
Ein Wert vom Typ
<length>oder<percentage>gibt einen Versatz vom Anfang dernormal-Timeline an. Dieser liegt standardmäßig beicover 0%für eine View-Progress-Timeline als Quelle und beiscroll 0%für eine Scroll-Progress-Timeline als Quelle. Negative Werte verschieben den Anfang nach außen und verlängern damit den Aktivierungsbereich. Positive Werte verschieben den Anfang nach innen und verkürzen den Aktivierungsbereich. - Den Anfang eines bestimmten benannten Bereichs
-
Ein Wert vom Typ
<timeline-range-name>gibt einen Versatz von0%innerhalb des benannten Timeline-Bereichs an. Dieser kanncover,contain,entry,exit,entry-crossing,exit-crossingoderscrollsein. Siehe Namen von Timeline-Bereichen verstehen. - Einen Versatz gegenüber einem bestimmten benannten Bereich
-
Wenn sowohl ein Wert vom Typ
<timeline-range-name>als auch ein Wert vom Typ<length>oder<percentage>angegeben wird, liegt der Anfang am Anfang des benannten Bereichs, verschoben um den angegebenen Abstand. Prozentwerte beziehen sich auf die Länge des angegebenen Bereichs. Siehe Innenabstände mit Prozentwerten festlegen.
Die Eigenschaft timeline-trigger-activation-range-start kann zusammen mit der Eigenschaft timeline-trigger-activation-range-end auch über die Kurzschreibweise timeline-trigger-activation-range festgelegt werden. Diese kann wiederum über die Kurzschreibweise timeline-trigger festgelegt werden.
Mehrere Werte für den Bereichsanfang angeben
Wenn in einer timeline-trigger-activation-range-start-Deklaration mehrere kommagetrennte Werte angegeben werden, gilt jeder Wert für einen Timeline-Trigger, und zwar in der Reihenfolge, in der die Namen in der Eigenschaft timeline-trigger-name aufgeführt sind. Stimmen die Anzahl der Trigger und die Anzahl der Werte für timeline-trigger-activation-range-start nicht überein, werden sie wie mehrere Werte von Animationseigenschaften angewendet:
- Gibt es mehr Werte für
timeline-trigger-activation-range-startals fürtimeline-trigger-name, werden die überschüssigen Bereichswerte verworfen. - Gibt es mehr Trigger-Namen als Bereiche, werden die Werte für
timeline-trigger-activation-range-startwiederholt, bis jedem Wert fürtimeline-trigger-nameein Wert fürtimeline-trigger-activation-range-startzugeordnet ist. - Sind mehrere Werte für
timeline-trigger-name, aber nur ein Wert fürtimeline-trigger-activation-range-startfestgelegt, gilt dieser Wert für alle Werte vontimeline-trigger-name.
Formale Definition
| Anfangswert | normal |
|---|---|
| Anwendbar auf | alle Elemente |
| Vererbt | Nein |
| Prozentwerte | Relative to the specified named timeline range if specified, otherwise relative to the entire timeline |
| Berechneter Wert | A list where each item may be 'normal', a length percentage, or a timeline range name and a length percentage |
| Animationstyp | Not animatable |
Formale Syntax
timeline-trigger-activation-range-start =
[ normal | <length-percentage> | <timeline-range-name> <length-percentage>? ]#
<length-percentage> =
<length> |
<percentage>
Beispiele
>Grundlegende Verwendung
In diesem Beispiel verschieben wir den Anfang des Aktivierungsbereichs eines Triggers für eine scrollgesteuerte Animation nach innen, indem wir einen eigenen Wert für timeline-trigger-activation-range-start festlegen.
HTML
Unser Markup enthält zwei <div>-Elemente – eines, das animiert wird, und eines, auf dem ein Trigger eingerichtet wird. Dazu kommt etwas Textinhalt, damit die Seite scrollbar ist. Der Kürze halber haben wir den Textinhalt 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 @keyframes für eine rotate-Animation:
@keyframes rotate {
from {
rotate: 0deg;
}
to {
rotate: 360deg;
}
}
Mit der 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. Die Eigenschaft animation-trigger macht daraus eine durch einen Trigger gesteuerte Animation. Der Wert verweist auf einen timeline-trigger-name mit dem Wert --t und gibt zwei <animation-action>-Werte an – play und pause. Sie 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 über die folgenden Eigenschaften:
timeline-trigger-namemit dem Wert--t. Dieser entspricht dem Bezeichner, auf den der Wert der Eigenschaftanimation-triggerdes Elements.animatedverweist, und verknüpft so die beiden Elemente.timeline-trigger-sourcemit dem Wertview(). Damit wird für den Timeline-Trigger eine View-Progress-Timeline festgelegt, deren Quelle das nächstgelegene scrollbare Vorfahrenelement ist.timeline-trigger-activation-range-startmit dem Wertentry 50%. Der Bereichentryreicht vom ersten Eintritt des Trigger-Elements in den Scrollport bis zu dem Punkt, an dem es vollständig eingetreten ist. Dieser Wert setzt den Anfang des Aktivierungsbereichs des Triggers auf50%innerhalb des Bereichsentry. Das ist der Fall, wenn50%des beobachteten Elements.triggerüber die Endkante des Scrollports eingetreten sind.
.trigger {
timeline-trigger-name: --t;
timeline-trigger-source: view();
timeline-trigger-activation-range-start: entry 50%;
}
Wenn kein Wert ausdrücklich festgelegt wird, ist der Standardwert von timeline-trigger-activation-range-end normal, was hier cover 100% entspricht. Der Standardwert von timeline-trigger-active-range-end ist auto – derselbe Wert wie für timeline-trigger-activation-range-end. Das bedeutet, dass die Deaktivierung am Ende des Bereichs cover erfolgt, wenn das beobachtete Element den Scrollport über dessen Anfangskante verlässt.
Ergebnis
Scrollen Sie den Inhalt nach oben. Die Animation beginnt abzuspielen, wenn 50% des beobachteten Elements .trigger über die Endkante des Scrollports eingetreten sind. Sie pausiert, wenn das Element den Scrollport über die gegenüberliegende Kante vollständig verlassen hat. Wenn Sie nach unten scrollen, kehrt sich der Ablauf um: Die Animation wird wieder abgespielt, sobald das Trigger-Element beginnt, am oberen Rand in den Scrollport einzutreten. Sie pausiert erneut, wenn 50% des Trigger-Elements den Scrollport nach unten verlassen haben.
Spezifikationen
| Spezifikation |
|---|
| Animation Triggers> # propdef-timeline-trigger-activation-range-start> |