Animation: currentTime 屬性
Web Animations API 的 Animation.currentTime 屬性用於獲取和設定動畫的當前時間值(以毫秒為單位),無論動畫正在執行還是已暫停。
如果動畫缺少 timeline,處於非活動狀態,或者尚未播放過,則 currentTime 的返回值將是 null。
值
一個表示當前時間的數字(以毫秒為單位),或者 null 以停用動畫。
示例
在 Drink Me/Eat Me 遊戲 中,愛麗絲的身高被動畫化,可以從大變小或從小變大。遊戲開始時,透過將動畫的 currentTime 設定為其 KeyframeEffect 持續時間的一半,來將她的身高設定在兩個極端之間。
js
aliceChange.currentTime = aliceChange.effect.timing.duration / 2;
更通用的跳轉到動畫 50% 標記的方法是:
js
animation.currentTime =
animation.effect.getComputedTiming().delay +
animation.effect.getComputedTiming().activeDuration / 2;
時間精度降低
為了防止計時攻擊和 指紋識別,animation.currentTime 的精度可能會根據瀏覽器設定進行舍入。在 Firefox 中,privacy.reduceTimerPrecision 首選項預設啟用,並將精度限制為 2ms。你也可以啟用 privacy.resistFingerprinting,在這種情況下,精度將是 100ms 或 privacy.resistFingerprinting.reduceTimerPrecision.microseconds 的值(以較大者為準)。
例如,在降低時間精度的情況下,animation.currentTime 的結果將始終是 0.002 的倍數,或者在使用 privacy.resistFingerprinting 啟用時是 0.1(或 privacy.resistFingerprinting.reduceTimerPrecision.microseconds)的倍數。
js
// 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
// …
規範
| 規範 |
|---|
| Web 動畫 # dom-animation-currenttime |
瀏覽器相容性
載入中…
另見
- 用於控制網頁動畫的其他方法和屬性的
Animation。 Animation.startTime用於獲取動畫計劃開始的時間。- Web Animations API