ScrollMagic предоставляет мощные инструменты для создания анимаций,
привязанных к скроллу страницы. Одним из вспомогательных элементов при
разработке является индикатор сцены
(Indicators), который помогает визуально отследить, когда
сцена активируется и как она взаимодействует с DOM. По умолчанию
индикаторы имеют стандартный вид, но библиотека позволяет полностью
настраивать их внешний вид с помощью CSS и параметров инициализации.
Индикаторы подключаются через метод addIndicators()
объекта сцены:
var controller = new ScrollMagic.Controller();
var scene = new ScrollMagic.Scene({
triggerElement: "#trigger",
duration: 200
})
.addIndicators({name: "My Scene"})
.addTo(controller);
В данном примере создается сцена, длительность которой составляет 200
пикселей, и добавляется индикатор с подписью
"My Scene".
Ключевые параметры метода addIndicators():
name — текстовая подпись для сцены;colorStart — цвет верхней границы индикатора;colorEnd — цвет нижней границы индикатора;colorTrigger — цвет линии, соответствующей
триггеру;indent — отступ индикатора от левой границы
страницы;parent — элемент DOM, в который будет вставлен
индикатор (по умолчанию body).Индикаторы можно стилизовать с помощью встроенных параметров:
scene.addIndicators({
name: "Custom Scene",
colorStart: "#FF0000",
colorEnd: "#0000FF",
colorTrigger: "#00FF00",
indent: 20
});
colorStart обозначает верхнюю границу сцены,
активируемую при начале скролла.colorEnd показывает нижнюю границу сцены, когда сцена
завершается.colorTrigger визуализирует линию триггера и помогает
точно определить момент начала действия сцены.indent позволяет сместить индикатор вправо для удобства
визуализации при множественных сценах.По умолчанию индикатор добавляется в <body>, но
можно выбрать любой контейнер для визуализации:
scene.addIndicators({
name: "Scene in container",
parent: "#indicator-container",
colorStart: "orange",
colorEnd: "purple",
colorTrigger: "yellow"
});
Использование параметра parent позволяет интегрировать
индикаторы в отдельный блок страницы, например, для панели отладки или
панели инструментов.
Хотя ScrollMagic автоматически применяет цвета из параметров, можно полностью контролировать внешний вид индикаторов через CSS.
Основные CSS-классы индикаторов:
.scrollmagic-indicator — общий контейнер
индикатора;.scrollmagic-indicator-start — верхняя граница
сцены;.scrollmagic-indicator-end — нижняя граница сцены;.scrollmagic-indicator-trigger — линия триггера;.scrollmagic-indicator-name — текстовая подпись
сцены.Пример расширенной кастомизации:
.scrollmagic-indicator {
border-radius: 5px;
opacity: 0.8;
font-family: "Arial", sans-serif;
font-size: 12px;
}
.scrollmagic-indicator-start {
border-top: 3px dashed #FF4500;
}
.scrollmagic-indicator-end {
border-bottom: 3px dashed #1E90FF;
}
.scrollmagic-indicator-trigger {
background-color: #32CD32;
width: 2px;
}
Такой подход позволяет полностью изменить визуальное представление индикаторов, делая их прозрачными, цветными, с закругленными углами или нестандартными линиями.
В сложных проектах может потребоваться менять цвета или позицию индикаторов в процессе работы:
scene.on("enter", function () {
document.querySelector(".scrollmagic-indicator-start").style.borderTopColor = "#FFD700";
});
scene.on("leave", function () {
document.querySelector(".scrollmagic-indicator-start").style.borderTopColor = "#FF0000";
});
Это позволяет визуально отслеживать активные и неактивные сцены и использовать индикаторы не только для отладки, но и для динамического интерфейса.
При нескольких сценах индикаторы можно смещать с помощью параметра
indent:
scene1.addIndicators({name: "Scene 1", indent: 0});
scene2.addIndicators({name: "Scene 2", indent: 30});
scene3.addIndicators({name: "Scene 3", indent: 60});
Каждый индикатор будет визуально отделен, что повышает читаемость при сложных скролл-анимациях.
parent) позволяет скрывать
индикаторы в определенных секциях без удаления сцены.Настройка внешнего вида индикаторов в ScrollMagic обеспечивает наглядность и контроль при создании сложных скролл-анимаций, позволяя гибко управлять как визуальной частью, так и информационным сопровождением сцен.