Библиотека fullPage.js предоставляет мощный механизм управления событиями для слайдов и секций, позволяя реагировать на пользовательские действия, анимации и смену контента. События делятся на два типа: глобальные события страницы и локальные события слайдов, что позволяет гибко настраивать поведение каждой части сайта.
afterLoadСрабатывает после полной загрузки секции. Сигнатура:
afterLoad: function(origin, destination, direction){}
"up"
или "down".Используется для:
onLeaveСрабатывает перед уходом с секции на другую. Сигнатура:
onLeave: function(origin, destination, direction){}
afterLoad в том, что событие происходит до
смены секции.Пример применения:
onLeave: function(origin, destination, direction){
if(origin.index === 0 && direction === 'down'){
console.log('Покидаем первую секцию');
}
}
afterSlideLoadСрабатывает после загрузки слайда внутри секции. Сигнатура:
afterSlideLoad: function(section, origin, destination, direction){}
"left" или
"right" для горизонтального переключения.Используется для запуска анимаций внутри слайда или подгрузки интерактивного контента.
onSlideLeaveСрабатывает перед сменой слайда. Сигнатура:
onSlideLeave: function(section, origin, destination, direction){}
Пример:
onSlideLeave: function(section, origin, destination, direction){
if(section.index === 1 && origin.index === 0){
console.log('Уходим с первого слайда второй секции');
}
}
События можно задавать непосредственно при создании fullPage.js:
new fullpage('#fullpage', {
afterLoad: function(origin, destination, direction){
console.log('Секция загружена:', destination.index);
},
onLeave: function(origin, destination, direction){
console.log('Покидаем секцию:', origin.index);
},
afterSlideLoad: function(section, origin, destination, direction){
console.log('Слайд загружен:', destination.index);
},
onSlideLeave: function(section, origin, destination, direction){
console.log('Слайд покидаем:', origin.index);
}
});
Такой подход удобен для централизованного управления анимациями и логикой взаимодействия пользователя с контентом.
Для более гибкого управления можно использовать методы
fullpage_api:
fullpage_api.setAllowScrolling(true);
fullpage_api.setKeyboardScrolling(true);
Также через event listeners можно подписываться на события без указания их в конфигурации:
document.addEventListener('fpAfterLoad', function(e){
console.log('fpAfterLoad событие секции', e.detail);
});
fpAfterLoad, fpOnLeave,
fpAfterSlideLoad, fpOnSlideLeave – специальные
события, которые прокидывают все данные о секции и слайде через объект
detail.afterLoad и
onSlideLeave предпочтительнее прямых JS-анимаций.onLeave
и afterSlideLoad используются вместе, чтобы
синхронизировать выход и вход анимаций.afterSlideLoad и onSlideLeave.fullpage_api.moveSlideRight();
fullpage_api.moveSlideLeft();
fullpage_api.moveTo(sectionIndex, slideIndex);
section.index и destination.index внутри
обработчиков, чтобы избежать конфликтов с вертикальными переходами.События предоставляют объекты с полезными свойствами:
Секция:
index – номер секции, начиная с нуля.anchor – якорь секции, если указан.item – DOM-элемент секции.Слайд:
index – номер слайда внутри секции.item – DOM-элемент слайда.Использование этих объектов позволяет создавать динамические интерфейсы с адаптивными анимациями, подгрузкой контента и синхронизацией с другими библиотеками.
Хотите, я могу подготовить следующую часть, посвящённую интеграции событий fullPage.js с внешними анимационными библиотеками и тонким приёмам управления визуальными эффектами?