animation-duration
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.
* Some parts of this feature may have varying levels of support.
Die animation-duration
CSS Eigenschaft legt die Dauer fest, die eine Animation benötigt, um einen Zyklus abzuschließen.
Probieren Sie es aus
animation-duration: 750ms;
animation-duration: 3s;
animation-duration: 0s;
<section class="flex-column" id="default-example">
<div class="animating" id="example-element"></div>
<button id="play-pause">Play</button>
</section>
#example-element {
animation-direction: alternate;
animation-iteration-count: infinite;
animation-name: slide;
animation-play-state: paused;
animation-timing-function: ease-in;
background-color: #1766aa;
border-radius: 50%;
border: 5px solid #333;
color: white;
height: 150px;
margin: auto;
margin-left: 0;
width: 150px;
}
#example-element.running {
animation-play-state: running;
}
#play-pause {
font-size: 2rem;
}
@keyframes slide {
from {
background-color: orange;
color: black;
margin-left: 0;
}
to {
background-color: orange;
color: black;
margin-left: 80%;
}
}
"use strict";
window.addEventListener("load", () => {
const el = document.getElementById("example-element");
const button = document.getElementById("play-pause");
button.addEventListener("click", () => {
if (el.classList.contains("running")) {
el.classList.remove("running");
button.textContent = "Play";
} else {
el.classList.add("running");
button.textContent = "Pause";
}
});
});
Es ist oft praktisch, die Kurzschreibweise animation
zu verwenden, um alle Animationseigenschaften auf einmal festzulegen.
Syntax
/* Single animation */
animation-duration: auto; /* Default */
animation-duration: 6s;
animation-duration: 120ms;
/* Multiple animations */
animation-duration: 1.64s, 15.22s;
animation-duration: 10s, 35s, 230ms;
/* Global values */
animation-duration: inherit;
animation-duration: initial;
animation-duration: revert;
animation-duration: revert-layer;
animation-duration: unset;
Werte
auto
-
Für zeitbasierte Animationen entspricht
auto
einem Wert von0s
(siehe unten). Für CSS scrollgesteuerte Animationen fülltauto
die gesamte Zeitleiste mit der Animation aus. <time>
-
Die Zeit, die eine Animation benötigt, um einen Zyklus abzuschließen. Diese kann entweder in Sekunden (
s
) oder Millisekunden (ms
) angegeben werden. Der Wert muss positiv oder null sein, und die Einheit ist erforderlich.Wenn kein Wert angegeben wird, wird der Standardwert von
0s
verwendet. In diesem Fall wird die Animation dennoch ausgeführt (dieanimationStart
undanimationEnd
Ereignisse werden ausgelöst). Ob die Animation bei einer Dauer von0s
sichtbar ist, hängt vom Wert vonanimation-fill-mode
ab, wie unten erläutert:- Wenn
animation-fill-mode
aufbackwards
oderboth
gesetzt ist, wird während desanimation-delay
Countdowns der erste Frame der Animation angezeigt, wie durchanimation-direction
definiert. - Wenn
animation-fill-mode
aufforwards
oderboth
gesetzt ist, wird nach Ablauf deranimation-delay
der letzte Frame der Animation angezeigt, wie durchanimation-direction
definiert. - Wenn
animation-fill-mode
aufnone
gesetzt ist, hat die Animation keinen sichtbaren Effekt.
- Wenn
Hinweis:
Negative Werte sind ungültig und führen dazu, dass die Deklaration ignoriert wird. Einige frühe, mit Präfix versehene Implementierungen könnten sie als identisch mit 0s
betrachten.
Hinweis:
Wenn Sie mehrere durch Kommas getrennte Werte in einer animation-*
Eigenschaft angeben, werden diese in der Reihenfolge auf die Animationen angewendet, in der die animation-name
s erscheinen. Für Situationen, in denen die Anzahl der Animationen und der animation-*
Eigenschaftswerte nicht übereinstimmen, siehe Festlegen mehrerer Animationswerteigenschaften.
Hinweis:
Beim Erstellen von CSS scrollgesteuerten Animationen macht es wenig Sinn, einen animation-duration
Wert in Sekunden oder Millisekunden anzugeben. In Tests schien es keinen Effekt auf Zeitleistenanimationen des Scrollfortschritts zu haben, während es bei Ansichtsfortschritts-Zeitleistenanimationen die Animation am Ende der Zeitleiste zu geschehen schien. Allerdings erfordert Firefox, dass ein animation-duration
gesetzt ist, damit die Animation erfolgreich angewendet wird. Es wird daher empfohlen, animation-duration
auf 1ms
einzustellen, damit die Animationen in Firefox funktionieren, der Effekt aber nicht zu sehr verändert wird.
Formale Definition
Anfangswert | 0s |
---|---|
Anwendbar auf | alle Elemente, ::before und ::after Pseudoelemente |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | Not animatable |
Formale Syntax
animation-duration =
<time [0s,∞]>#
Beispiele
Animationdauer festlegen
Diese Animation hat eine animation-duration
von 0,7 Sekunden.
HTML
<div class="box"></div>
CSS
.box {
background-color: rebeccapurple;
border-radius: 10px;
width: 100px;
height: 100px;
}
.box:hover {
animation-name: rotate;
animation-duration: 0.7s;
}
@keyframes rotate {
0% {
transform: rotate(0);
}
100% {
transform: rotate(360deg);
}
}
Ergebnis
Fahren Sie mit der Maus über das Rechteck, um die Animation zu starten.
Siehe CSS-Animationen für mehr Beispiele.
Spezifikationen
Specification |
---|
CSS Animations Level 1 # animation-duration |
Browser-Kompatibilität
Siehe auch
- Verwendung von CSS-Animationen
- JavaScript
AnimationEvent
API - Andere verwandte Animationseigenschaften:
animation
,animation-composition
,animation-delay
,animation-direction
,animation-fill-mode
,animation-iteration-count
,animation-name
,animation-play-state
,animation-timeline
,animation-timing-function