Animation: playbackRate-Eigenschaft
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since März 2020.
Die Animation.playbackRate
-Eigenschaft der Web Animations API gibt die Wiedergaberate der Animation zurück oder legt sie fest.
Animationen haben eine Wiedergaberate, die einen Skalierungsfaktor vom Änderungsratenwert der timeline
-Zeitwerte der Animation zur aktuellen Zeit der Animation bietet. Die Wiedergaberate ist anfangs 1
.
Wert
Nimmt eine Zahl an, die 0, negativ oder positiv sein kann. Negative Werte kehren die Animation um. Der Wert ist ein Skalierungsfaktor, daher würde zum Beispiel ein Wert von 2 die Wiedergaberate verdoppeln.
Hinweis:
Das Setzen der playbackRate
einer Animation auf 0
pausiert effektiv die Animation (jedoch wird ihr playState
nicht unbedingt paused
).
Beispiele
Im Beispiel Growing/Shrinking Alice Game führt ein Klick oder Tippen auf die Flasche dazu, dass die Wachstumsanimation von Alice (aliceChange
) umkehrt und sie schrumpft:
const shrinkAlice = () => {
aliceChange.playbackRate = -1;
aliceChange.play();
};
// On tap or click, Alice will shrink.
bottle.addEventListener("mousedown", shrinkAlice);
bottle.addEventListener("touchstart", shrinkAlice);
Andererseits führt ein Klick auf den Kuchen dazu, dass sie "wächst" und aliceChange
wieder vorwärts abspielt:
const growAlice = () => {
aliceChange.playbackRate = 1;
aliceChange.play();
};
// On tap or click, Alice will grow.
cake.addEventListener("mousedown", growAlice);
cake.addEventListener("touchstart", growAlice);
In einem anderen Beispiel, dem Red Queen's Race Game, verlangsamen Alice und die Rote Königin ständig:
setInterval(() => {
// Make sure the playback rate never falls below .4
if (redQueenAlice.playbackRate > 0.4) {
redQueenAlice.updatePlaybackRate(redQueenAlice.playbackRate * 0.9);
}
}, 3000);
Aber ein Klick oder Tippen auf sie beschleunigt sie, indem ihre playbackRate
multipliziert wird:
const goFaster = () => {
redQueenAlice.updatePlaybackRate(redQueenAlice.playbackRate * 1.1);
};
document.addEventListener("click", goFaster);
document.addEventListener("touchstart", goFaster);
Spezifikationen
Specification |
---|
Web Animations> # dom-animation-playbackrate> |
Browser-Kompatibilität
Loading…