Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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:

js
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:

js
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:

js
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:

js
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

Siehe auch