Библиотека Waypoints позволяет создавать триггеры, которые срабатывают при прокрутке страницы и достижении определённых элементов. Это особенно полезно для аналитики, когда необходимо фиксировать взаимодействие пользователей с контентом, отслеживать видимость блоков, начало воспроизведения видео, клики по элементам и другие события.
var waypoint = new Waypoint({
element: document.getElementById('section1'),
handler: function(direction) {
console.log('Элемент достигнут. Направление прокрутки: ' + direction);
},
offset: '50%' // Триггер срабатывает, когда элемент находится посередине экрана
});
Ключевые моменты:
element – DOM-элемент, к которому привязывается
Waypoint.handler – функция, вызываемая при срабатывании
триггера. Параметр direction показывает, куда
прокручивается страница (down или up).offset – смещение от верхнего края окна браузера, при
котором срабатывает событие. Можно использовать пиксели
(100px) или проценты (50%).Waypoints позволяет создавать множественные точки на одной
странице для разных элементов, что важно для аналитики.
Например, можно отслеживать видимость всех блоков с классом
.article-section:
var sections = document.querySelectorAll('.article-section');
sections.forEach(function(section) {
new Waypoint({
element: section,
handler: function(direction) {
console.log('Секция достигнута: ', section.id, 'Направление:', direction);
// Здесь можно отправлять событие в аналитическую систему
},
offset: '75%' // Срабатывает, когда элемент почти виден
});
});
Принцип работы: Waypoint проверяет положение
элемента относительно текущего скролла и вызывает handler,
когда элемент пересекает заданную границу. Это позволяет фиксировать
достижение пользователем важных точек на странице.
Waypoints передаёт направление движения через параметр
direction. Это особенно полезно для аналитики, когда важно
различать вход в область видимости и выход из
неё:
new Waypoint({
element: document.getElementById('promo'),
handler: function(direction) {
if(direction === 'down') {
console.log('Пользователь начал просмотр промо-блока');
} else {
console.log('Пользователь прокрутил промо-блок вверх');
}
},
offset: '50%'
});
Для оптимизации производительности после срабатывания триггера можно удалять Waypoint:
var promoWaypoint = new Waypoint({
element: document.getElementById('promo'),
handler: function() {
console.log('Триггер сработал один раз');
this.destroy(); // Удаляет Waypoint после срабатывания
},
offset: '50%'
});
Это важно при отслеживании событий, которые фиксируются единожды, например, первый просмотр баннера.
Waypoints поддерживает группы, что позволяет управлять сразу несколькими точками и их порядком срабатывания:
var waypoint1 = new Waypoint({
element: document.getElementById('section1'),
handler: function() { console.log('Section 1'); },
group: 'analytics',
offset: '50%'
});
var waypoint2 = new Waypoint({
element: document.getElementById('section2'),
handler: function() { console.log('Section 2'); },
group: 'analytics',
offset: '50%'
});
// Управление всеми waypoint в группе
Waypoint.disableAll('analytics'); // временно отключает все триггеры группы
Waypoint.enableAll('analytics'); // снова включает
Практическая ценность: групповая настройка помогает при аналитике серийных событий, например, при последовательном просмотре нескольких блоков контента.
События, сгенерированные Waypoints, легко интегрируются с любыми системами аналитики, например, Google Analytics или Яндекс.Метрика:
new Waypoint({
element: document.getElementById('video-section'),
handler: function() {
gtag('event', 'view', {
'event_category': 'Video',
'event_label': 'Promo Video Section'
});
},
offset: '50%'
});
Такой подход позволяет фиксировать пользовательские действия без явного клика и строить детализированную статистику вовлеченности.
Waypoints корректно работает с изменением размеров окна и
динамическими элементами. Для элементов, появляющихся после загрузки
контента, используется метод refreshAll():
// После добавления нового контента на страницу
Waypoint.refreshAll();
Это гарантирует, что новые блоки будут отслеживаться, а старые триггеры не потеряют координаты.
Waypoints — мощный инструмент для веб-аналитики на фронтенде. С его помощью можно:
Грамотная настройка Waypoints позволяет получать точные и подробные данные о поведении пользователей, повышая качество анализа контента и эффективности маркетинговых кампаний.