Библиотека fullPage.js предоставляет мощный механизм работы с событиями, позволяющий отслеживать действия пользователя и реагировать на них в реальном времени. События делятся на два типа: инициализационные и пользовательские, и могут быть привязаны как к отдельным слайдам, так и ко всей странице.
Для работы с событиями используются следующие методы:
afterLoad Срабатывает после завершения
анимации загрузки нового слайда. Принимает два параметра:
origin и destination.new fullpage('#fullpage', {
afterLoad: function(origin, destination, direction){
console.log('Загружен слайд:', destination.index);
}
});
onLeave Активируется перед уходом со
слайда, до начала анимации. Параметры: origin,
destination, direction.new fullpage('#fullpage', {
onLeave: function(origin, destination, direction){
console.log(`Покидаем слайд ${origin.index}, направление: ${direction}`);
}
});
afterRender Вызывается один раз после
полной инициализации fullPage.js, когда все слайды готовы.new fullpage('#fullpage', {
afterRender: function(){
console.log('FullPage полностью загружен');
}
});
afterResize Срабатывает после
изменения размера окна браузера.new fullpage('#fullpage', {
afterResize: function(width, height){
console.log(`Новые размеры: ${width}x${height}`);
}
});
afterSlideLoad и
onSlideLeave Эти события аналогичны
afterLoad и onLeave, но применяются к
внутренним слайдам (горизонтальные секции).new fullpage('#fullpage', {
afterSlideLoad: function(section, origin, destination, direction){
console.log(`Внутренний слайд ${destination.index} загружен`);
}
});
FullPage.js позволяет динамически управлять событиями через методы
fullpage_api. Для добавления обработчика используется
стандартный синтаксис Jav * aScript:
fullpage_api.setAllowScrolling(true); // управление прокруткой
Однако для событий можно использовать кастомные обработчики через библиотеку событий браузера:
document.addEventListener('fpAfterLoad', function(e){
console.log('Слайд загружен:', e.detail.destination.index);
});
Для таких событий fpAfterLoad,
fpOnLeave, fpAfterSlideLoad объект
события содержит detail с ключевыми данными: индекс секции,
направление, ссылку на DOM-элемент слайда.
Для предотвращения утечек памяти или ненужного срабатывания событий
рекомендуется уметь отписываться от них. Для событий fullPage.js через
API это делается вручную, если обработчики были привязаны через
addEventListener:
function handleAfterLoad(e){
console.log('Слайд загружен:', e.detail.destination.index);
}
document.addEventListener('fpAfterLoad', handleAfterLoad);
// Когда нужно удалить обработчик:
document.removeEventListener('fpAfterLoad', handleAfterLoad);
Если обработчики задаются в конфигурации при инициализации, их можно отключить через изменение опций и перезапуск fullPage:
fullpage_api.destroy('all'); // полностью удаляет fullPage.js с текущей страницы
onLeave
выполняется до анимации, afterLoad — после. Это позволяет
разделять логику предварительной подготовки и финального
отображения.this: Внутри обработчика
this ссылается на объект fullpage_api.origin, destination, где index
указывает номер секции или слайда, а anchor — уникальный
идентификатор.afterLoad,
onLeave) и для внутренних слайдов
(afterSlideLoad, onSlideLeave).Для создания интерактивных интерфейсов часто требуется динамическая подписка/отписка от событий в зависимости от состояния страницы:
let slideLoaded = false;
function onSlideLoadHandler(section, origin, destination, direction){
if(!slideLoaded && destination.index === 2){
console.log('Вторая секция загружена впервые');
slideLoaded = true;
document.removeEventListener('fpAfterLoad', onSlideLoadHandler);
}
}
document.addEventListener('fpAfterLoad', onSlideLoadHandler);
Такой подход предотвращает повторные вызовы обработчиков, экономит ресурсы и повышает стабильность работы сайта.
afterRender для
инициализации сторонних плагинов после того, как fullPage полностью
загрузился.Эффективное управление событиями в fullPage.js позволяет реализовать плавную навигацию, сложные анимации и интерактивные элементы, минимизируя нагрузку на страницу и повышая отзывчивость интерфейса.