Индикаторы в ScrollMagic представляют собой визуальные подсказки, которые помогают отследить момент срабатывания сцены, длину её действия и текущее состояние при прокрутке страницы. Они особенно полезны при отладке сложных анимаций и последовательностей взаимодействия с DOM-элементами.
Для добавления индикаторов используется метод
.addIndicators() на объекте сцены:
var scene = new ScrollMagic.Scene({
triggerElement: "#trigger",
duration: 200
})
.setPin("#pin")
.addIndicators({name: "My Scene"})
.addTo(controller);
name — задаёт подпись индикатора, которая будет
отображена в верхней части визуальной метки.indent — задаёт горизонтальное смещение индикатора от
левого края страницы.colorStart, colorEnd и
colorTrigger — позволяют настраивать цвета для начала
сцены, конца и триггерной позиции соответственно.Имя индикатора играет ключевую роль при работе с несколькими сценами одновременно. Оно отображается в панели индикаторов и помогает быстро идентифицировать, какая сцена вызывает анимацию или закрепление. Рекомендуется использовать:
section1-animation)."header-pin"), чтобы сразу было понятно, какой элемент
закрепляется или анимируется..addIndicators({name: "header-pin", colorTrigger: "blue"})
Когда сцены формируют цепочку анимаций, имена индикаторов помогают отслеживать порядок срабатывания и длительность каждой сцены. Для сложных сценариев полезно включать дополнительные метки:
start — позиция начала сцены относительно
триггера.end — позиция конца сцены относительно триггера.colorStart,
colorEnd, colorTrigger) облегчает визуальный
контроль.Пример с использованием цветового кодирования:
.addIndicators({
name: "content-fade",
colorStart: "green",
colorEnd: "red",
colorTrigger: "blue"
});
В проектах с большим числом элементов можно создавать имена динамически на основе атрибутов DOM:
document.querySelectorAll(".animate").forEach((el, index) => {
new ScrollMagic.Scene({
triggerElement: el,
duration: 300
})
.setClassToggle(el, "visible")
.addIndicators({name: `animate-${index}`})
.addTo(controller);
});
Такой подход гарантирует уникальность имен и упрощает отладку при множественных одинаковых блоках.
Имена индикаторов не ограничиваются только визуальной подписью. Они
могут использоваться совместно с методами setTween(),
setPin() и событиями сцены (on("enter"),
on("leave")) для логирования состояния сцены:
scene.on("enter", function () {
console.log("Сцена с индикатором 'header-pin' активирована");
});
Это позволяет интегрировать индикаторы не только как визуальный инструмент, но и как часть механизма контроля за анимацией.
Индикаторы с именами позволяют создать прозрачную и наглядную систему отслеживания всех взаимодействий ScrollMagic на странице, что особенно важно для сложных, многоуровневых анимационных проектов.