Анимация: свойство playbackRate
Базовая Широко поддерживается
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2020 года.
Свойство Animation.playbackRate API веб-анимаций возвращает или задаёт скорость воспроизведения анимации.
Анимации имеют скорость воспроизведения, которая обеспечивает коэффициент масштабирования от скорости изменения значений времени анимации timeline до текущего времени анимации. Скорость воспроизведения по умолчанию 1.
Значение
Принимает числовое значение, которое может быть 0, отрицательным или положительным. Отрицательные значения изменяют направление анимации. Значение представляет собой коэффициент масштабирования, поэтому, например, значение 2 удвоит скорость воспроизведения.
Примечание: Установка playbackRate анимации в 0 фактически останавливает анимацию (однако её playState не обязательно становится paused).
Примеры
В примере игры «Растущая/Уменьшающаяся Алиса» нажатие на бутылку заставляет анимацию роста Алисы (aliceChange) меняться на противоположное, заставляя её уменьшаться:
const shrinkAlice = () => {
aliceChange.playbackRate = -1;
aliceChange.play();
};
// On tap or click, Alice will shrink.
bottle.addEventListener("mousedown", shrinkAlice, false);
bottle.addEventListener("touchstart", shrinkAlice, false);
Напротив, нажатие на торт заставляет её «расти», снова воспроизводя aliceChange вперёд:
const growAlice = () => {
aliceChange.playbackRate = 1;
aliceChange.play();
};
// On tap or click, Alice will grow.
cake.addEventListener("mousedown", growAlice, false);
cake.addEventListener("touchstart", growAlice, false);
В другом примере, игра «Бег Красной Королевы», Алиса и Красная Королева постоянно замедляются:
setInterval(() => {
// Make sure the playback rate never falls below .4
if (redQueen_alice.playbackRate > 0.4) {
redQueen_alice.playbackRate *= 0.9;
}
}, 3000);
Но нажатие на них заставляет их ускориться, умножив их playbackRate:
const goFaster = () => {
redQueen_alice.playbackRate *= 1.1;
};
document.addEventListener("click", goFaster);
document.addEventListener("touchstart", goFaster);
Спецификации
| Спецификация |
|---|
| Web Animations # dom-animation-playbackrate |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
playbackRate |
75 | 79 | 48 | 62 | 13.1 | 75 | 48 | 54 | 13.4 | 11.0 | 75 |
См. также
© 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/playbackRate