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-Eigenschaft von CSS legt die Zeitdauer fest, die eine Animation benötigt, um einen Zyklus zu vollenden.
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 Kurzschrift-Eigenschaft animation zu verwenden, um alle Animations-Eigenschaften 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 ist
autogleichbedeutend mit einem Wert von0s(siehe unten). Für CSS scroll-gesteuerte Animationen fülltautodie gesamte Zeitleiste mit der Animation. <time>-
Die Zeit, die eine Animation benötigt, um einen Zyklus abzuschließen. Dies 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
0sverwendet, wobei die Animation dennoch ausgeführt wird (die EreignisseanimationStartundanimationEndwerden ausgelöst). Ob die Animation bei einer Dauer von0ssichtbar sein wird, hängt vom Wert desanimation-fill-modeab, wie unten erklärt:- Wenn
animation-fill-modeaufbackwardsoderbothgesetzt ist, wird der erste Frame der Animation, wie durchanimation-directiondefiniert, während des Countdowns vonanimation-delayangezeigt. - Wenn
animation-fill-modeaufforwardsoderbothgesetzt ist, wird der letzte Frame 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 und führen dazu, dass die Deklaration ignoriert wird. Einige frühe, mit Präfix versehene Implementierungen könnten sie als identisch zu 0s betrachten.
Hinweis:
Wenn Sie mehrere durch Kommas getrennte Werte für eine animation-*-Eigenschaft angeben, werden sie 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 Animations-Eigenschaftswerte.
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 es keinen Einfluss auf Zeitleisten-Animationen zu haben, während es bei Ansichtsfortschritt-Zeitleisten-Animationen die Animation dazu zu bringen schien, näher am Ende der Zeitleiste zu erfolgen. Firefox benötigt jedoch eine Einstellung der animation-duration, damit die Animation erfolgreich angewendet wird. Es wird daher empfohlen, animation-duration auf 1ms zu setzen, damit die Animationen in Firefox funktionieren, ohne den Effekt allzu sehr zu ändern.
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
>Einstellen 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 dem Mauszeiger über das Rechteck, um die Animation zu starten.
Weitere Beispiele finden Sie unter CSS-Animationen.
Spezifikationen
| Specification |
|---|
| CSS Animations Level 1> # animation-duration> |
Browser-Kompatibilität
Loading…
Siehe auch
- Verwendung von CSS-Animationen
- JavaScript
AnimationEventAPI - Andere verwandte Animations-Eigenschaften:
animation,animation-composition,animation-delay,animation-direction,animation-fill-mode,animation-iteration-count,animation-name,animation-play-state,animation-timeline,animation-timing-function