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 Wiedergabegeschwindigkeit der Animation zurück oder setzt diese.

Animationen haben eine Wiedergabegeschwindigkeit, die einen Skalierungsfaktor von der Änderungsrate der timeline-Zeitwerte der Animation zur aktuellen Zeit der Animation bietet. Die Wiedergabegeschwindigkeit ist anfänglich 1.

Wert

Nimmt eine Zahl an, die 0, negativ oder positiv sein kann. Negative Werte kehren die Animation um. Der Wert ist ein Skalierungsfaktor, also würde beispielsweise ein Wert von 2 die Wiedergabegeschwindigkeit verdoppeln.

Hinweis: Das Setzen der playbackRate einer Animation auf 0 pausiert effektiv die Animation (allerdings wird ihr playState nicht notwendigerweise paused).

Beispiele

Im Growing/Shrinking Alice Game-Beispiel 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, false);
bottle.addEventListener("touchstart", shrinkAlice, false);

Im Gegensatz dazu führt ein Klick auf den Kuchen dazu, dass sie "wächst", indem aliceChange wieder vorwärts abgespielt wird:

js
const growAlice = () => {
  aliceChange.playbackRate = 1;
  aliceChange.play();
};

// On tap or click, Alice will grow.
cake.addEventListener("mousedown", growAlice, false);
cake.addEventListener("touchstart", growAlice, false);

In einem anderen Beispiel, dem Rennen der Roten Königin, verlangsamen sich 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 führt dazu, dass sie schneller werden, 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