fullPage.js предоставляет мощный механизм работы с событиями, позволяющий отслеживать действия пользователя и управлять поведением страниц. Логирование событий необходимо для отладки, анализа взаимодействия и динамической подстройки интерфейса.
Библиотека поддерживает несколько категорий событий:
Навигационные события
onLeave(origin, destination, direction) — вызывается
при уходе с секции. Параметры:
origin — объект секции, из которой уходит
пользователь.destination — объект секции, в которую направляется
пользователь.direction — строка 'up' или
'down'. Используется для логирования переходов и выполнения
анимаций при смене секции.new fullpage('#fullpage', {
onLeave: function(origin, destination, direction){
console.log(`Переход из секции ${origin.index} в секцию ${destination.index}, направление: ${direction}`);
}
});afterLoad(origin, destination, direction) —
вызывается после полной загрузки секции. Позволяет фиксировать
завершение перехода и запуск анимаций внутри секции.
afterLoad: function(origin, destination, direction){
console.log(`Секция ${destination.index} полностью загружена`);
}События слайдов
onSlideLeave(section, origin, destination, direction)
— срабатывает при уходе слайдa внутри секции.
afterSlideLoad(section, origin, destination, direction)
— вызывается после загрузки слайда. Эти события позволяют вести
логирование навигации внутри секций с горизонтальной прокруткой.
onSlideLeave: function(section, origin, destination, direction){
console.log(`Слайд ${origin.index} покидает секцию ${section.index}, направление: ${direction}`);
}События при полной инициализации
afterRender() — срабатывает после полной
инициализации fullPage.js, когда DOM полностью готов. Идеально для
логирования стартового состояния и инициализации пользовательских
скриптов.
afterRender: function(){
console.log('fullPage.js успешно инициализирован');
}fullPage.js может выдавать предупреждения при некорректной
конфигурации или попытках использовать недоступные методы. Для отладки
рекомендуется использовать сочетание событий и стандартного
console.warn:
afterRender: function(){
if(!document.querySelectorAll('.section').length){
console.warn('Нет секций для прокрутки');
}
}
Сбор статистики переходов Можно записывать каждый переход пользователя для аналитики:
onLeave: function(origin, destination, direction){
fetch('/log', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
from: origin.index,
to: destination.index,
dir: direction
})
});
}Отладка сложных анимаций Логирование начала и конца анимации помогает выявлять несоответствия:
afterLoad: function(origin, destination){
console.log(`Запуск анимаций секции ${destination.index}`);
animateSection(destination);
}Комбинированное логирование Использование нескольких событий позволяет построить полную карту действий пользователя:
new fullpage('#fullpage', {
onLeave: logTransition,
afterLoad: logLoaded,
onSlideLeave: logSlideLeave,
afterSlideLoad: logSlideLoad
});
function logTransition(origin, destination, direction){
console.log(`Переход ${origin.index} → ${destination.index}`);
}
function logLoaded(origin, destination){
console.log(`Секция ${destination.index} загружена`);
}Для крупных проектов имеет смысл централизовать логирование, например, с использованием уровня важности:
const logLevel = 'debug'; // debug, info, warn, error
function logEvent(message, level='info'){
if(level === 'debug' && logLevel !== 'debug') return;
console[level](message);
}
new fullpage('#fullpage', {
onLeave: function(origin, destination){
logEvent(`onLeave: ${origin.index} → ${destination.index}`, 'debug');
},
afterLoad: function(origin, destination){
logEvent(`afterLoad: ${destination.index}`, 'info');
}
});
console.log внутри часто срабатывающих событий могут
замедлять работу страницы.debugMode для динамического
включения/отключения логирования.Логирование событий в fullPage.js позволяет не только отлаживать интерфейс, но и строить аналитику взаимодействия пользователя с прокручиваемыми страницами, что делает его ключевым инструментом при разработке сложных веб-проектов.