transition-timing-function
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Die transition-timing-function
CSS-Eigenschaft legt fest, wie Zwischenwerte für CSS-Eigenschaften berechnet werden, die von einem Übergangseffekt beeinflusst werden.
Probieren Sie es aus
Im Wesentlichen können Sie damit eine Beschleunigungskurve festlegen, sodass die Geschwindigkeit des Übergangs über seine Dauer variieren kann.
Diese Beschleunigungskurve wird durch eine <easing-function>
für jede zu übergehende Eigenschaft definiert.
Sie können mehrere Easing-Funktionen angeben; jede wird auf die entsprechende Eigenschaft angewendet, wie durch die Eigenschaft transition-property
festgelegt, die als transition-property
-Liste fungiert. Wenn weniger Easing-Funktionen angegeben sind als in der transition-property
-Liste, muss der Benutzeragent berechnen, welcher Wert verwendet wird, indem die Liste der Werte so oft wiederholt wird, bis es für jede Übergangseigenschaft einen gibt. Wenn es mehr Easing-Funktionen gibt, wird die Liste auf die richtige Größe gekürzt. In beiden Fällen bleibt die CSS-Deklaration gültig.
Syntax
/* Keyword values */
transition-timing-function: ease;
transition-timing-function: ease-in;
transition-timing-function: ease-out;
transition-timing-function: ease-in-out;
transition-timing-function: linear;
transition-timing-function: step-start;
transition-timing-function: step-end;
/* Function values */
transition-timing-function: steps(4, jump-end);
transition-timing-function: cubic-bezier(0.1, 0.7, 1, 0.1);
/* Steps Function keywords */
transition-timing-function: steps(4, jump-start);
transition-timing-function: steps(10, jump-end);
transition-timing-function: steps(20, jump-none);
transition-timing-function: steps(5, jump-both);
transition-timing-function: steps(6, start);
transition-timing-function: steps(8, end);
/* Multiple easing functions */
transition-timing-function: ease, step-start, cubic-bezier(0.1, 0.7, 1, 0.1);
/* Global values */
transition-timing-function: inherit;
transition-timing-function: initial;
transition-timing-function: revert;
transition-timing-function: revert-layer;
transition-timing-function: unset;
Werte
<easing-function>
-
Jede
<easing-function>
stellt die Easing-Funktion dar, die mit der entsprechenden Eigenschaft, die übergangen werden soll, verknüpft wird, wie intransition-property
definiert.Die Nicht-Schritt-Schlüsselwortwerte (ease, linear, ease-in-out, etc.) stellen jeweils eine kubische Bézier-Kurve mit festen vier Punktwerten dar, wobei der Wert
cubic-bezier()
eine nicht vordefinierte Wertsetzung ermöglicht. Die Schritt-Easing-Funktionen teilen die Eingabezeit in eine angegebene Anzahl von Intervallen gleicher Länge. Sie wird durch eine Anzahl von Schritten und eine Schrittposition definiert.ease
-
Entspricht
cubic-bezier(0.25, 0.1, 0.25, 1.0)
, dem Standardwert, steigert die Geschwindigkeit in der Mitte des Übergangs, verlangsamt sich am Ende. linear
-
Entspricht
cubic-bezier(0.0, 0.0, 1.0, 1.0)
, Übergänge mit gleichmäßiger Geschwindigkeit. ease-in
-
Entspricht
cubic-bezier(0.42, 0, 1.0, 1.0)
, beginnt langsam, mit zunehmender Übergangsgeschwindigkeit bis zum Abschluss. ease-out
-
Entspricht
cubic-bezier(0, 0, 0.58, 1.0)
, beginnt schnell zu übergehen, verlangsamt sich mit fortschreitendem Übergang. ease-in-out
-
Entspricht
cubic-bezier(0.42, 0, 0.58, 1.0)
, beginnt langsam zu übergehen, beschleunigt sich, und verlangsamt sich dann erneut. cubic-bezier(p1, p2, p3, p4)
-
Eine benutzerdefinierte kubische Bézier-Kurve, wobei die Werte p1 und p3 im Bereich von 0 bis 1 liegen müssen.
steps(n, <jump-term>)
-
Zeigt den Übergang entlang n Stopps entlang des Übergangs an, wobei jeder Stopp für gleiche Zeitlängen angezeigt wird. Wenn n beispielsweise 5 ist, gibt es 5 Schritte. Ob der Übergang vorübergehend bei 0%, 20%, 40%, 60% und 80% stoppt, bei 20%, 40%, 60%, 80% und 100% oder 5 Stopps zwischen 0% und 100% gemacht werden, oder 5 Stopps inklusive der 0%- und 100%-Marken (bei 0%, 25%, 50%, 75% und 100%), hängt davon ab, welcher der folgenden Sprungbegriffe verwendet wird:
jump-start
-
Bezeichnet eine linkskontinuierliche Funktion, sodass der erste Sprung beim Beginn des Übergangs erfolgt;
jump-end
-
Bezeichnet eine rechtskontinuierliche Funktion, sodass der letzte Sprung erfolgt, wenn die Animation endet;
jump-none
-
Es gibt keinen Sprung an einem der Enden. Stattdessen wird an beiden der 0%-Marke und der 100%-Marke gehalten, jeweils für 1/n der Dauer
jump-both
-
Enthält Pausen sowohl bei den 0%- als auch bei den 100%-Marken und fügt effektiv einen Schritt während der Übergangszeit hinzu.
start
-
Wie
jump-start
. end
-
Wie
jump-end
.
step-start
-
Entspricht
steps(1, jump-start)
step-end
-
Entspricht
steps(1, jump-end)
Zugänglichkeit
Einige Animationen können nützlich sein, um Nutzern zu helfen, zu verstehen, welche Aktionen erwartet werden, um Beziehungen innerhalb der Benutzeroberfläche zu zeigen und um Nutzer darüber zu informieren, welche Aktionen stattgefunden haben. Animationen können helfen, kognitive Belastung zu verringern, Veränderungsblindheit zu verhindern und ein besseres Erinnerungsvermögen an räumliche Beziehungen zu etablieren. Einige Animationen können jedoch für Menschen mit kognitiven Problemen wie Aufmerksamkeitsdefizit-Hyperaktivitätsstörung (ADHS) problematisch sein, und bestimmte Arten von Bewegungen können bei Vestibularsstörungen, Epilepsie und Migräne sowie scotopischer Empfindlichkeit ein Auslöser sein.
Überlegen Sie, einen Mechanismus zum Anhalten oder Deaktivieren der Animation anzubieten, sowie die Verwendung der Reduced Motion Media Query (oder eines gleichwertigen User Agent Client Hint Sec-CH-Prefers-Reduced-Motion
) zu implementieren, um ein komplementäres Erlebnis für Benutzer zu schaffen, die eine Präferenz für weniger Animationen ausgedrückt haben.
Formale Definition
Initialer Wert | ease |
---|---|
Anwendbar auf | alle Elemente, ::before und ::after Pseudoelemente |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | Not animatable |
Formale Syntax
transition-timing-function =
<easing-function>#
<easing-function> =
<linear-easing-function> |
<cubic-bezier-easing-function> |
<step-easing-function>
<linear-easing-function> =
linear |
<linear()>
<cubic-bezier-easing-function> =
ease |
ease-in |
ease-out |
ease-in-out |
<cubic-bezier()>
<step-easing-function> =
step-start |
step-end |
<steps()>
<linear()> =
linear( [ <number> && <percentage>{0,2} ]# )
<cubic-bezier()> =
cubic-bezier( [ <number [0,1]> , <number> ]#{2} )
<steps()> =
steps( <integer> , <step-position>? )
<step-position> =
jump-start |
jump-end |
jump-none |
jump-both |
start |
end
Beispiele
Cubic-Bezier-Beispiele
.ease {
transition-timing-function: ease;
}
.ease-in {
transition-timing-function: ease-in;
}
.ease-out {
transition-timing-function: ease-out;
}
.ease-in-out {
transition-timing-function: ease-in-out;
}
.linear {
transition-timing-function: linear;
}
.cb {
transition-timing-function: cubic-bezier(0.2, -2, 0.8, 2);
}
Step-Beispiele
.jump-start {
transition-timing-function: steps(5, jump-start);
}
.jump-end {
transition-timing-function: steps(5, jump-end);
}
.jump-none {
transition-timing-function: steps(5, jump-none);
}
.jump-both {
transition-timing-function: steps(5, jump-both);
}
.step-start {
transition-timing-function: step-start;
}
.step-end {
transition-timing-function: step-end;
}
Spezifikationen
Specification |
---|
CSS Transitions # transition-timing-function-property |
Browser-Kompatibilität
BCD tables only load in the browser