Свойство toggleActions используется для управления
поведением анимаций при взаимодействии с триггером в
ScrollTrigger или аналогичных системах, основанных на
событиях. Оно позволяет задавать последовательность действий для
анимации в зависимости от того, входит ли элемент в зону видимости,
выходит из неё или возвращается обратно.
Формат записи:
toggleActions: "play pause resume reset"
Здесь четыре ключевых действия соответствуют последовательности:
Каждое из четырёх действий может принимать одно из следующих значений:
gsap.to(".box", {
x: 400,
scrollTrigger: {
trigger: ".box",
start: "top center",
end: "bottom center",
toggleActions: "play reverse play reverse"
}
});
В этом примере:
play).reverse).play).reverse).gsap.to(".circle", {
rotation: 360,
scrollTrigger: {
trigger: ".circle",
start: "top 80%",
end: "bottom 20%",
toggleActions: "play pause resume reset"
}
});
Здесь поведение:
toggleActions
позволяет создавать сложные сценарии скролл-анимаций без необходимости
вручную отслеживать события.pause или
reset при уходе из зоны, чтобы снизить нагрузку на
рендеринг.timeline,
toggleActions может управлять всей последовательностью
целиком, что удобно для синхронизации нескольких элементов.onEnterBack и onLeaveBack, чтобы
убедиться, что анимация корректно реагирует при прокрутке вверх.Использование с различными точками старта и конца:
gsap.to(".image", {
scale: 1.5,
scrollTrigger: {
trigger: ".image",
start: "top 90%",
end: "top 10%",
toggleActions: "restart none none reverse"
}
});
Комбинация с другими свойствами ScrollTrigger:
markers: true помогает визуально отследить старт и
конец зоны триггера.scrub: true позволяет синхронизировать анимацию с
прокруткой, но toggleActions по-прежнему определяет
начальные и конечные события.Использование toggleActions делает GSAP особенно гибким
для интерактивных интерфейсов, где анимация должна
реагировать на скролл в обе стороны, управляться автоматически и
оставаться предсказуемой. Такой подход значительно упрощает создание
динамичных, отзывчивых веб-страниц без написания большого количества
событийных обработчиков.