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 #333333;
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%;
}
}
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 Kurzschreibweiseigenschaft animation zu verwenden, um alle Animationseigenschaften gleichzeitig 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 ist
autoäquivalent zu einem Wert von0s(siehe unten). Bei CSS scroll-gesteuerten Animationen fülltautodie 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 ist, wird der Standardwert von
0sverwendet, in diesem Fall wird die Animation dennoch ausgeführt (dieanimationStartundanimationEndEreignisse werden ausgelöst). Ob die Animation sichtbar sein wird, wenn die Dauer0sbeträgt, hängt vom Wert vonanimation-fill-modeab, wie unten erläutert:- Wenn
animation-fill-modeaufbackwardsoderbothgesetzt ist, wird das erste Bild der Animation, wie durchanimation-directiondefiniert, während desanimation-delayCountdown angezeigt. - Wenn
animation-fill-modeaufforwardsoderbothgesetzt ist, wird das letzte Bild der Animation, wie durchanimation-directiondefiniert, nach Ablauf deranimation-delayangezeigt. - Wenn
animation-fill-modeaufnonegesetzt ist, hat die Animation keinen sichtbaren Effekt.
- Wenn
Hinweis:
Negative Werte sind ungültig, wodurch die Deklaration ignoriert wird. Einige frühe, prefix-basierte 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 angewendet, in der die animation-names erscheinen. Für Situationen, in denen die Anzahl der Animationen und die animation-* Eigenschaftswerte nicht übereinstimmen, siehe Festlegen mehrerer Animationswerteeigenschaften.
Hinweis:
Beim Erstellen von CSS scroll-gesteuerten Animationen macht es nicht wirklich Sinn, einen animation-duration Wert in Sekunden oder Millisekunden anzugeben. In Tests schien dies keinen Einfluss auf die Scroll-Fortschritt-Zeitleisten-Animationen zu haben, während es bei Sichtbarkeits-Fortschritt-Zeitleisten-Animationen schien, die Animation näher zum Ende der Zeitleiste zu schieben. Jedoch erfordert Firefox, dass eine animation-duration festgelegt wird, damit die Animation erfolgreich angewendet wird. Daher sollten Sie animation-duration auf 1ms setzen, damit die Animationen in Firefox funktionieren, ohne dass der Effekt dadurch zu stark 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 =
[ auto | <time [0s,∞]> ]#
Beispiele
>Festlegen der Animationsdauer
Diese Animation hat eine Animationsdauer 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 weitere Beispiele.
Spezifikationen
| Specification |
|---|
| CSS Animations Level 1> # animation-duration> |
Browser-Kompatibilität
Siehe auch
- Verwendung von CSS-Animationen
- JavaScript
AnimationEventAPI - 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