Имена индикаторов

Индикаторы в 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' активирована");
});

Это позволяет интегрировать индикаторы не только как визуальный инструмент, но и как часть механизма контроля за анимацией.

Рекомендации по практическому использованию

  • Всегда задавать уникальные имена для каждой сцены, чтобы избежать путаницы.
  • Использовать короткие, но информативные подписи, отражающие действие сцены.
  • В сочетании с цветовой схемой индикаторы становятся мощным инструментом для отладки и визуального контроля анимаций.
  • Динамическое присвоение имен полезно для страниц с повторяющимися блоками и сложной структурой DOM.

Индикаторы с именами позволяют создать прозрачную и наглядную систему отслеживания всех взаимодействий ScrollMagic на странице, что особенно важно для сложных, многоуровневых анимационных проектов.