Анимация: свойство currentTime
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2020 года.
Свойство Animation.currentTime API веб-анимаций возвращает и устанавливает текущее значение времени анимации в миллисекундах, будь то анимация запущена или приостановлена.
Если анимация не имеет timeline, неактивна или еще не была воспроизведена, значение currentTime равно null.
Значение
Число, представляющее текущее время в миллисекундах, или null для отключения анимации.
Примеры
В игре «Выпей меня/Съешь меня» (Drink Me/Eat Me) высота Алисы анимируется, чтобы она могла изменяться с маленькой на большую или с большой на маленькую. В начале игры ее высота устанавливается между двумя крайними значениями путем установки currentTime анимации Алисы в половину от KeyframeEffect ее продолжительности:
aliceChange.currentTime = aliceChange.effect.timing.duration / 2;
Более общий способ перехода к 50%-й метке анимации:
animation.currentTime = animation.effect.getComputedTiming().delay + animation.effect.getComputedTiming().activeDuration / 2;
Уменьшенная точность времени
Чтобы защититься от атак на время и отслеживания, точность animation.currentTime может быть округлено в зависимости от настроек браузера. В Firefox предпочтение privacy.reduceTimerPrecision включено по умолчанию и по умолчанию равно 2 мс. Также можно включить privacy.resistFingerprinting, в этом случае точность будет 100 мс или значение privacy.resistFingerprinting.reduceTimerPrecision.microseconds, что больше.
Например, при уменьшенной точности времени результат animation.currentTime всегда будет кратен 0,002 или кратен 0,1 (или privacy.resistFingerprinting.reduceTimerPrecision.microseconds) с включенным 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 // …
Спецификации
| Спецификация |
|---|
| Web Animations # dom-animation-currenttime |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
currentTime |
75 | 79 | 48 | 62 | 13.1 | 75 | 48 | 54 | 13.4 | 11.0 | 75 |
См. также
-
Animationдля других методов и свойств, которые вы можете использовать для управления анимацией веб-страницы. -
Animation.startTimeдля времени, на которое запланировано начало анимации. - API веб-анимаций
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Animation/currentTime