В библиотеке GSAP управление жизненным циклом анимаций играет
критически важную роль, особенно при динамическом изменении интерфейсов.
Методы kill() и revert() предоставляют
возможность эффективно завершать или откатывать анимации, освобождая
ресурсы и восстанавливая исходное состояние объектов.
kill()Метод kill() используется для остановки и удаления
анимации. Он позволяет гибко управлять отдельными tween-ами или целыми
таймлайнами.
Синтаксис:
tween.kill(vars);
Параметры:
vars (необязательный объект) – набор условий,
определяющих, что именно будет уничтожено. Например, можно уничтожить
только конкретное свойство анимируемого объекта.Примеры использования:
let tween = gsap.to(".box", { x: 300, duration: 2 });
tween.kill();
В этом случае анимация полностью останавливается и удаляется из
памяти. После вызова kill() объект .box больше
не будет автоматически двигаться.
let tween = gsap.to(".box", { x: 300, y: 200, duration: 2 });
tween.kill({ x: true });
Анимация по оси x прекращается, а движение по оси
y продолжается до завершения.
let tl = gsap.timeline();
tl.to(".box", { x: 300, duration: 2 })
.to(".box", { y: 200, duration: 1 });
tl.kill();
Вся последовательность анимаций таймлайна останавливается сразу, освобождая ресурсы.
Ключевые особенности kill()
revert()Метод revert() позволяет не просто остановить анимацию,
а вернуть объект в исходное состояние до запуска анимации. Это особенно
полезно при временных эффектах, hover-анимациях или интерактивных
переходах.
Синтаксис:
tween.revert();
Примеры использования:
let tween = gsap.to(".box", { x: 300, duration: 2 });
tween.revert();
После вызова revert() объект .box мгновенно
возвращается в начальное положение, как если бы анимация никогда не
запускалась.
let tl = gsap.timeline();
tl.to(".box", { x: 300, duration: 2 })
.to(".box", { y: 200, duration: 1 });
tl.revert();
Весь таймлайн откатывается, все свойства возвращаются к исходным значениям до запуска анимаций.
Ключевые особенности revert()
kill() заключается в том, что
revert() возвращает объект в состояние до анимации, а
kill() останавливает текущую анимацию, оставляя объект в
текущем положении.kill() и
revert()| Особенность | kill() | revert() |
|---|---|---|
| Прекращение анимации | Да | Да |
| Возврат к исходным значениям | Нет | Да |
| Применение к таймлайну | Да | Да |
| Освобождение ресурсов | Да | Да |
| Выборочное уничтожение свойств | Да | Нет |
Использование этих методов позволяет гибко управлять динамическими интерфейсами, предотвращать лишние перерасчеты и сохранять производительность.
kill().revert().kill() оставляет объект в текущем
состоянии, а revert() возвращает исходное, что влияет на
дальнейшие последовательные анимации.Методы kill() и revert() являются важными
инструментами управления анимацией в GSAP, обеспечивая контроль над
жизненным циклом анимаций, оптимизацию производительности и точное
восстановление начальных состояний элементов.