Параметр reverse является одним из ключевых свойств
объекта Scene в библиотеке ScrollMagic и
напрямую влияет на поведение сцены при прокрутке страницы. Он
определяет, будет ли сцена “откатываться” при прокрутке страницы обратно
вверх, когда триггер покидает область видимости.
var scene = new ScrollMagic.Scene({
triggerElement: "#trigger",
duration: 200,
reverse: true
});
triggerElement – элемент, при появлении которого сцена
активируется.duration – длина сцены в пикселях или процент от высоты
экрана.reverse – логическое значение (true или
false).trueПо умолчанию reverse равен true. Это
означает, что все действия сцены будут отменяться при прокрутке
назад.
Пример:
var scene = new ScrollMagic.Scene({
triggerElement: "#section1",
duration: 300,
reverse: true
})
.setClassToggle("#animateMe", "visible")
.addTo(controller);
В этом случае, когда пользователь прокручивает страницу вниз и
элемент #section1 входит в область сцены, к элементу
#animateMe добавляется класс visible. Если
пользователь прокручивает страницу обратно вверх, класс
удаляется, возвращая элемент в исходное состояние.
falseЕсли reverse установить в false, действия
сцены не будут отменяться при обратной прокрутке. Это
удобно для однократных анимаций или эффектов, которые должны срабатывать
только один раз.
Пример:
var scene = new ScrollMagic.Scene({
triggerElement: "#section2",
duration: 200,
reverse: false
})
.setClassToggle("#animateOnce", "active")
.addTo(controller);
В данном случае, как только элемент #section2 активирует
сцену, класс active добавляется к элементу
#animateOnce и остается добавленным, даже
если страница прокручена назад.
Reverse особенно полезен при интеграции с анимационными библиотеками, например GSAP:
var tween = gsap.to("#box", {x: 400, duration: 1});
var scene = new ScrollMagic.Scene({
triggerElement: "#triggerBox",
duration: 500,
reverse: true
})
.setTween(tween)
.addTo(controller);
#box выполняется.reverse: true.Если изменить на reverse: false, анимация выполнится
один раз и не будет откатываться, что может быть
полезно для создания эффектов «входа элемента в сцену» без возврата.
durationПараметр duration влияет на то, как работает
reverse.
duration > 0, сцена имеет «протяженность» и
класс или анимация активны только в течение этой
протяженности, а с обратной прокруткой они будут отменяться при
reverse: true.duration = 0, сцена срабатывает мгновенно, и
reverse определяет, будет ли мгновенное действие отменяться
при прокрутке вверх.Пример с протяженной анимацией:
var tween = gsap.to("#line", {width: "100%", duration: 1});
var scene = new ScrollMagic.Scene({
triggerElement: "#startLine",
duration: 600,
reverse: true
})
.setTween(tween)
.addTo(controller);
Здесь анимация ширины #line будет увеличиваться по мере
прокрутки вниз и уменьшаться обратно при прокрутке
вверх.
reverse: true для динамических эффектов.reverse: false, чтобы элемент оставался в активном
состоянии после прохождения сцены.duration и reverse позволяет создавать
«прокручиваемые» анимации с точным контролем над состоянием.reverse: true
обеспечивает плавный откат элементов при прокрутке вверх.| reverse | Поведение при прокрутке вверх |
|---|---|
| true | Действия сцены отменяются, классы удаляются, анимации возвращаются |
| false | Действия сцены сохраняются, отмены не происходит |
reverse – простой, но мощный инструмент, который
определяет интерактивность сцены при прокрутке. Его правильная настройка
позволяет создавать плавные и предсказуемые анимационные эффекты в
ScrollMagic.