Animation: currentTime-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2020.
Die Animation.currentTime
-Eigenschaft der Web Animations API gibt den aktuellen Zeitwert der Animation in Millisekunden zurück und setzt diesen, unabhängig davon, ob sie läuft oder pausiert ist.
Wenn der Animation eine timeline
fehlt, sie inaktiv ist oder noch nicht abgespielt wurde, ist der Rückgabewert von currentTime
null
.
Wert
Eine Zahl, die die aktuelle Zeit in Millisekunden repräsentiert, oder null
, um die Animation zu deaktivieren.
Beispiele
Im Drink Me/Eat Me Spiel wird Alices Größe animiert, so dass sie von klein auf groß oder von groß auf klein wechseln kann. Zu Beginn des Spiels wird ihre Größe auf einen Wert zwischen den beiden Extremen eingestellt, indem die currentTime
ihrer Animation auf die Hälfte der Dauer ihres KeyframeEffect
gesetzt wird:
aliceChange.currentTime = aliceChange.effect.timing.duration / 2;
Ein allgemeinere Möglichkeit, auf die 50%-Marke einer Animation zu springen, wäre:
animation.currentTime =
animation.effect.getComputedTiming().delay +
animation.effect.getComputedTiming().activeDuration / 2;
Reduzierte Zeitpräzision
Um Schutz vor Timing-Angriffen und Fingerprinting zu bieten, könnte die Präzision von animation.currentTime
in Abhängigkeit von den Browsereinstellungen gerundet werden. In Firefox ist die privacy.reduceTimerPrecision
-Einstellung standardmäßig aktiviert und auf 2 ms voreingestellt. Sie können auch privacy.resistFingerprinting
aktivieren, in diesem Fall beträgt die Präzision 100 ms oder den Wert von privacy.resistFingerprinting.reduceTimerPrecision.microseconds
, je nachdem, welcher größer ist.
Beispielsweise wird bei reduzierter Zeitpräzision das Ergebnis von animation.currentTime
stets ein Vielfaches von 0,002 sein, oder ein Vielfaches von 0,1 (oder privacy.resistFingerprinting.reduceTimerPrecision.microseconds
) mit aktiviertem privacy.resistFingerprinting
.
// reduced time precision (2ms) in Firefox 60
animation.currentTime;
// Might be:
// 23.404
// 24.192
// 25.514
// …
// reduced time precision with `privacy.resistFingerprinting` enabled
animation.currentTime;
// Might be:
// 49.8
// 50.6
// 51.7
// …
Spezifikationen
Specification |
---|
Web Animations # dom-animation-currenttime |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
Animation
für andere Methoden und Eigenschaften, die Sie zur Steuerung der Animation auf Webseiten verwenden können.Animation.startTime
für die Zeit, zu der eine Animation gestartet werden soll.- Web Animations API