В библиотеке ScrollMagic параметр
triggerHook определяет точку на экране, при пересечении
которой активируется событие сцены. Этот параметр критически важен для
точного контроля момента запуска анимации в зависимости от положения
скролла.
triggerHook может принимать числовые значения от
0 до 1 или строки:
Также допускаются строковые значения:
"onEnter" — соответствует 1, срабатывает при появлении
элемента в области просмотра."onCenter" — соответствует 0.5, триггер срабатывает по
центру экрана."onLeave" — соответствует 0, триггер срабатывает при
уходе элемента за верхнюю границу окна.При создании сцены ScrollMagic.Scene параметр
triggerHook указывается в объекте конфигурации:
var scene = new ScrollMagic.Scene({
triggerElement: "#myElement",
triggerHook: 0.25, // срабатывание на 25% высоты окна сверху
duration: 200
});
В этом примере событие сцены сработает, когда верх элемента
#myElement достигнет 25% от высоты окна
сверху.
triggerElementПараметр triggerHook всегда работает в паре с
triggerElement — элементом DOM, который служит
точкой привязки для сцены. Без
triggerElement triggerHook срабатывает
относительно верха страницы.
Пример:
var scene = new ScrollMagic.Scene({
triggerElement: ".section",
triggerHook: "onEnter"
})
.setClassToggle(".section", "visible")
.addTo(controller);
Здесь класс "visible" добавится к .section,
когда верх этой секции появится в области просмотра.
triggerHook тесно связан с анимациями, управляемыми
через GSAP или CSS:
var tween = gsap.from(".box", {opacity: 0, y: 100, duration: 1});
var scene = new ScrollMagic.Scene({
triggerElement: ".box",
triggerHook: 0.8
})
.setTween(tween)
.addTo(controller);
Особенности:
triggerHook, тем
раньше срабатывает анимация при прокрутке вниз.triggerHooktriggerHook можно изменять после создания сцены с
помощью метода .triggerHook():
scene.triggerHook(0.3); // меняем триггер на 30% от верха окна
Это удобно при адаптивном дизайне: для разных разрешений можно изменять точку срабатывания без пересоздания сцены.
durationtriggerHook определяет точку старта, а
duration — протяжённость действия сцены. В
сочетании они позволяют создавать эффекты, зависящие от скролла,
например параллакс:
var scene = new ScrollMagic.Scene({
triggerElement: "#parallax",
triggerHook: 0.5,
duration: "100%" // сцена длится на всю высоту окна
})
.setTween("#parallax img", {y: "-50%", ease: Linear.easeNone})
.addTo(controller);
triggerHook: 0.9 или onEnter.triggerHook: 0.5 или
onCenter.triggerHook: 0 или onLeave.triggerElement корректно
позиционирован в DOM, иначе triggerHook может работать
неожиданно.triggerHook — ключевой инструмент контроля момента
запуска сцены, позволяющий тонко настраивать анимации под скролл и
создавать плавные интерактивные эффекты на странице.