Метод revert() в библиотеке GSAP предназначен для
возврата анимируемого элемента в исходное состояние, которое было
зафиксировано до начала анимации. Это особенно полезно при создании
временных анимаций, интерактивных эффектов или при динамическом
управлении визуальными состояниями элементов без необходимости вручную
хранить все исходные CSS-свойства.
revert() отменяет все изменения, внесённые через GSAP,
включая трансформации, стили и временные свойства.gsap.to(".box", {
x: 300,
rotation: 45,
duration: 2,
onComplete: () => gsap.revert(".box")
});
target): селектор,
DOM-элемент или массив элементов.duration, ease,
delay и другие стандартные параметры анимации.revert() полностью интегрируется с
gsap.timeline(), позволяя возвращать элементы к исходному
состоянию после выполнения сложной последовательности анимаций.
const tl = gsap.timeline();
tl.to(".circle", { x: 200, scale: 1.5, duration: 1 })
.to(".circle", { rotation: 90, duration: 1 })
.add(() => gsap.revert(".circle"), "+=0.5");
В этом примере после выполнения всех анимаций объект
.circle возвращается к исходным значениям всех CSS-свойств,
которые были изменены через GSAP.
GSAP автоматически отслеживает исходные значения свойств элемента.
При вызове revert() библиотека возвращает именно те
значения, которые были до запуска анимации. Это отличается от методов
set() или ручной установки стилей, так как:
gsap.to(".text", { x: 100, y: 50, scale: 2, duration: 1 });
gsap.revert(".text"); // возвращает x, y, scale к исходным значениям
Метод revert() идеально подходит для интерактивных
интерфейсов:
Пример hover-эффекта:
const box = document.querySelector(".box");
box.addEventListener("mouseenter", () => {
gsap.to(box, { scale: 1.2, rotation: 10, duration: 0.3 });
});
box.addEventListener("mouseleave", () => {
gsap.revert(box);
});
revert() возвращает элемент только к состоянию,
зафиксированному GSAP. Если CSS изменялся напрямую через
style или сторонние библиотеки, revert() эти изменения не
отменяет.set() или стандартного CSS.from() и fromTo()
анимациями для создания обратимых переходов.const boxes = document.querySelectorAll(".box");
boxes.forEach(box => {
box.addEventListener("mouseenter", () => {
gsap.to(box, { x: 50, y: 50, rotation: 15, scale: 1.3, duration: 0.4 });
});
box.addEventListener("mouseleave", () => {
gsap.revert(box);
});
});
const tl = gsap.timeline({ repeat: 1, yoyo: true });
tl.to(".circle", { x: 100, duration: 1 })
.to(".circle", { rotation: 180, duration: 1 })
.add(() => gsap.revert(".circle"));
В этом коде одновременно демонстрируется возврат состояния как при индивидуальном взаимодействии, так и после автоматической временной линии.
Метод revert() является мощным инструментом GSAP для
контроля состояния элементов, позволяя создавать временные и обратимые
анимации без ручного отслеживания начальных значений CSS.