Waypoints — это легковесная библиотека для JavaScript, позволяющая выполнять действия при достижении определённых точек прокрутки на странице. Центральную роль в её работе играют константы, определяющие направления движения и события. Понимание этих констант необходимо для правильного управления поведением скриптов.
Waypoints отслеживает перемещение скролла относительно целевых элементов. Для этого используются константы направлений:
'down' — указывает, что элемент
пересёк точку активации при прокрутке вниз.'up' — указывает, что элемент пересёк
точку активации при прокрутке вверх.Эти константы часто применяются внутри колбэк-функций Waypoint для проверки направления движения:
var waypoint = new Waypoint({
element: document.getElementById('section1'),
handler: function(direction) {
if (direction === 'down') {
console.log('Скролл вниз: элемент активирован');
} else if (direction === 'up') {
console.log('Скролл вверх: элемент активирован');
}
}
});
Waypoints предоставляет константы для разных событий прокрутки:
'enter' — элемент пересёк точку
активации и вошёл в видимую область.'exit' — элемент покинул точку
активации.'trigger' — событие, явно вызываемое
методом .trigger().Эти константы особенно полезны при работе с библиотекой Inview, расширяющей возможности Waypoints для отслеживания видимости элементов:
var inviewWaypoint = new Waypoint.Inview({
element: document.getElementById('image'),
enter: function(direction) {
console.log('Элемент вошёл в видимую область');
},
exited: function(direction) {
console.log('Элемент покинул видимую область');
}
});
Waypoints поддерживает несколько типов констант для управления поведением:
'vertical' — отслеживание вертикальной
прокрутки (по умолчанию).'horizontal' — отслеживание
горизонтальной прокрутки.'sticky' — фиксированное положение
элемента при прокрутке (используется вместе с Sticky Waypoints).Выбор типа влияет на то, как рассчитывается позиция точки активации и направление движения:
var horizontalWaypoint = new Waypoint({
element: document.getElementById('slider'),
handler: function(direction) {
console.log('Горизонтальная прокрутка:', direction);
},
horizontal: true
});
Waypoints оперирует понятиями контейнеров и контекстов, где контейнер — это элемент, по которому происходит прокрутка, а контекст — это пространство, в котором вычисляются координаты:
Waypoints.Adapter — адаптер для работы
с разными библиотеками DOM (jQuery, Zepto, нативный JS).context — объект, содержащий методы
для получения текущей позиции прокрутки и размеров контейнера.Эти константы позволяют создавать гибкие и переносимые решения без привязки к конкретной библиотеке:
var context = new Waypoint.Context(document.getElementById('scroll-container'));
var waypoint = new Waypoint({
element: document.getElementById('target'),
handler: function(direction) {
console.log('Событие в контексте контейнера', direction);
},
context: context
});
Waypoints позволяет задавать точку срабатывания через оффсет. В качестве констант можно использовать:
'bottom-in-view' — срабатывание, когда
нижняя граница элемента появляется в области просмотра.'top-in-view' — срабатывание, когда
верхняя граница элемента появляется в области просмотра.'50%',
для точного позиционирования активации.Пример использования:
var waypoint = new Waypoint({
element: document.getElementById('section2'),
handler: function(direction) {
console.log('Секция достигла 50% видимости', direction);
},
offset: '50%'
});
Waypoints предоставляет константы для управления повторяемостью и поведением триггеров:
continuous — если true,
Waypoint будет срабатывать при каждом пересечении точки активации.enabled — включение или отключение
конкретного Waypoint через waypoint.enable() /
waypoint.disable().group — объединение Waypoints в
группы, позволяющее массово управлять их срабатыванием.Пример объединения в группу:
var group = Waypoint.Group.findOrCreate({ name: 'myGroup' });
var waypoint = new Waypoint({
element: document.getElementById('section3'),
handler: function(direction) {
console.log('Секция из группы myGroup активирована', direction);
},
group: group
});
'down', 'up'.'enter', 'exit',
'trigger'.'vertical', 'horizontal',
'sticky'.'top-in-view', 'bottom-in-view',
процентные значения.continuous, enabled,
group.Waypoints.Adapter,
context.Знание этих констант позволяет строить сложные сценарии взаимодействия с элементами страницы, управлять триггерами и создавать адаптивные скролл-эффекты, полностью контролируя моменты активации и направление срабатывания.