Библиотека anime.js предоставляет гибкие средства
управления анимациями. Среди них ключевыми являются методы
play и pause, которые позволяют динамически
управлять выполнением анимаций после их создания. Эти методы работают с
объектами анимации, возвращаемыми функцией anime().
let animation = anime({
targets: '.box',
translateX: 250,
duration: 2000,
loop: true,
easing: 'easeInOutQuad'
});
В данном примере animation — это объект анимации, на
котором можно вызывать методы play и
pause.
playМетод play запускает анимацию или возобновляет её
выполнение после паузы. Если анимация была создана, но не стартовала
автоматически (autoplay: false), вызов play
запустит её с самого начала.
Синтаксис:
animation.play();
Особенности метода play:
play продолжит её с
текущего состояния.restart или seek, для точного контроля.Пример использования с
autoplay: false:
let animation = anime({
targets: '.circle',
scale: [0, 1],
duration: 1000,
autoplay: false
});
animation.play(); // запуск анимации вручную
В этом случае анимация не стартует автоматически, и вызов
play необходим для её начала.
pauseМетод pause останавливает анимацию в текущем состоянии,
позволяя возобновить её позже с того же момента с помощью
play.
Синтаксис:
animation.pause();
Особенности метода pause:
seek для перемещения
анимации к конкретному моменту перед продолжением.Пример приостановки и возобновления:
let animation = anime({
targets: '.square',
translateY: 300,
duration: 2000,
easing: 'easeInOutSine'
});
setTimeout(() => animation.pause(), 1000); // пауза через 1 секунду
setTimeout(() => animation.play(), 2000); // возобновление через 2 секунды
В этом примере анимация останавливается на середине и продолжается через 1 секунду после паузы.
Методы play и pause часто используются
вместе с другими возможностями anime.js:
restart() — перезапускает анимацию с
начала.seek(time) — устанавливает текущую
позицию анимации в миллисекундах.reverse() — меняет направление
воспроизведения анимации.Пример комбинирования:
let animation = anime({
targets: '.line',
translateX: 400,
duration: 1500,
loop: true,
easing: 'easeInOutCubic'
});
animation.pause(); // приостанавливаем
animation.seek(500); // перемещаем на 500 мс
animation.reverse(); // меняем направление
animation.play(); // продолжаем анимацию
Такой подход позволяет создавать сложные интерактивные сценарии и управлять анимацией с высокой точностью.
autoplay: false всегда необходимо
использовать play для запуска.pause
и play, чем полностью пересоздавать анимацию.pause не влияет на loop; при
возобновлении анимация продолжит цикл.seek совместно с pause и
play позволяет реализовать ползунки управления анимацией
или синхронизацию с другими событиями.Методы play и pause обеспечивают
фундаментальный контроль над временной шкалой анимации, делая её гибкой
и управляемой в реальном времени.