Animation: Eigenschaft startTime
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.startTime
-Eigenschaft des Animation
-Interfaces ist ein Gleitkommawert doppelter Genauigkeit, der angibt, wann die Wiedergabe einer Animation planmäßig beginnen soll.
Die Startzeit einer Animation ist der Zeitwert ihrer timeline
, wenn der zugehörige KeyframeEffect
zur Wiedergabe angesetzt wird. Die Startzeit einer Animation ist anfangs ungelöst (das bedeutet, dass sie null
ist, da sie keinen Wert hat).
Wert
Eine Gleitkommazahl, die die aktuelle Zeit in Millisekunden darstellt, oder null
, wenn keine Zeit festgelegt ist. Sie können diesen Wert lesen, um festzustellen, auf welche Startzeit er derzeit gesetzt ist, und Sie können diesen Wert ändern, um die Animation zu einem anderen Zeitpunkt starten zu lassen.
Beispiele
Im Beispiel Running on Web Animations API können wir alle neuen animierten Katzen synchronisieren, indem wir ihnen allen die gleiche startTime
wie der ursprünglichen laufenden Katze geben:
const catRunning = document
.getElementById("withWAAPI")
.animate(keyframes, timing);
/* A function that makes new cats. */
function addCat() {
const newCat = document.createElement("div");
newCat.classList.add("cat");
return newCat;
}
/* This is the function that adds a cat to the WAAPI column */
function animateNewCatWithWAAPI() {
// make a new cat
const newCat = addCat();
// animate said cat with the WAAPI's "animate" function
const newAnimationPlayer = newCat.animate(keyframes, timing);
// set the animation's start time to be the same as the original .cat#withWAAPI
newAnimationPlayer.startTime = catRunning.startTime;
// Add the cat to the pile.
WAAPICats.appendChild(newCat);
}
Reduzierte Zeitpräzision
Um Schutz gegen Timing-Angriffe und Fingerprinting zu bieten, kann die Präzision von animation.startTime
je nach Browsereinstellungen gerundet werden. In Firefox ist die Einstellung privacy.reduceTimerPrecision
standardmäßig aktiviert und beträgt 2 ms. Sie können auch privacy.resistFingerprinting
aktivieren, in welchem Fall die Präzision 100 ms oder der Wert von privacy.resistFingerprinting.reduceTimerPrecision.microseconds
beträgt, je nachdem, welcher größer ist.
Zum Beispiel wird bei reduzierter Zeitpräzision das Ergebnis von animation.startTime
immer ein Vielfaches von 0.002 sein, oder ein Vielfaches von 0.1 (oder privacy.resistFingerprinting.reduceTimerPrecision.microseconds
), wenn privacy.resistFingerprinting
aktiviert ist.
// reduced time precision (2ms) in Firefox 60
animation.startTime;
// Might be:
// 23.404
// 24.192
// 25.514
// …
// reduced time precision with `privacy.resistFingerprinting` enabled
animation.startTime;
// Might be:
// 49.8
// 50.6
// 51.7
// …
Spezifikationen
Specification |
---|
Web Animations # dom-animation-starttime |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Web Animations API
Animation
Animation.currentTime
für die aktuelle Zeit der Animation.