Событие afterSlideLoad является одним из ключевых
инструментов управления слайдами в библиотеке
fullPage.js. Оно срабатывает после полной
загрузки слайда внутри секции, предоставляя возможность
выполнить действия, когда пользователь завершил переход к конкретному
слайду.
Функция-обработчик afterSlideLoad принимает четыре
параметра:
afterSlideLoad: function(section, origin, destination, direction){
// Ваш код
}
section — объект секции, в которой находится слайд. Содержит свойства:
section.index — индекс секции (от 0);section.anchor — якорь секции, если он задан;section.item — DOM-элемент секции.origin — объект предыдущего слайда (с которого
был переход), либо null, если пользователь начал с текущего
слайда. Содержит аналогичные свойства:
origin.index;origin.anchor;origin.item.destination — объект текущего слайда (куда выполнен переход). Свойства:
destination.index;destination.anchor;destination.item.direction — строка, указывающая направление
перехода: 'left' или 'right'.
Основное назначение события — выполнение действий после завершения анимации слайда, например:
Пример базового использования:
new fullpage('#fullpage', {
slidesNavigation: true,
afterSlideLoad: function(section, origin, destination, direction){
console.log('Переход завершён');
console.log('Текущая секция:', section.index);
console.log('Текущий слайд:', destination.index);
if(destination.index === 2){
// Запуск анимации для третьего слайда
destination.item.querySelector('.animate').classList.add('active');
}
}
});
В этом примере при переходе к третьему слайду внутри секции
добавляется класс .active для запуска CSS-анимации.
afterSlideLoad: function(section, origin, destination, direction){
const video = destination.item.querySelector('video');
if(video){
video.play();
}
}
Видео начнёт воспроизводиться только после того, как слайд полностью загрузился и виден пользователю.
afterSlideLoad: function(section, origin, destination, direction){
if(!destination.item.dataset.loaded){
fetch('/api/content/' + destination.index)
.then(res => res.text())
.then(html => {
destination.item.innerHTML = html;
destination.item.dataset.loaded = 'true';
});
}
}
Это полезно для экономии ресурсов и ускорения первоначальной загрузки страницы.
afterSlideLoad: function(section, origin, destination, direction){
const header = document.querySelector('header');
if(destination.index % 2 === 0){
header.style.backgroundColor = '#333';
} else {
header.style.backgroundColor = '#fff';
}
}
Событие позволяет адаптировать внешний вид сайта под конкретный слайд.
onSlideLeaveonSlideLeave срабатывает перед началом
перехода, что удобно для очистки состояний, остановки анимаций
или прерывания видео.afterSlideLoad срабатывает после завершения
перехода, когда слайд полностью отрисован и видим. Это критично
для анимаций, которые должны начинаться только после окончания
движения.Пример сочетания:
onSlideLeave: function(section, origin, destination, direction){
origin.item.querySelector('video')?.pause();
},
afterSlideLoad: function(section, origin, destination, direction){
destination.item.querySelector('video')?.play();
}
afterSlideLoad вызывается каждый раз при переходе между
ними.anchors) событие срабатывает
корректно, даже если переход был выполнен через URL
(#section3/slide2).requestAnimationFrame или сторонние библиотеки
анимации.Свойство destination.item предоставляет чистый
DOM-элемент слайда, что позволяет:
Пример с анимацией нескольких элементов:
afterSlideLoad: function(section, origin, destination, direction){
const elements = destination.item.querySelectorAll('.fade-in');
elements.forEach((el, i) => {
setTimeout(() => {
el.classList.add('visible');
}, i * 200);
});
}
Здесь элементы с классом .fade-in появляются
последовательно с задержкой.
afterSlideLoad доступно начиная с
fullPage.js версии 3.x.slidesNavigation или scrollHorizontally по
необходимости).Событие afterSlideLoad обеспечивает точный
контроль над состоянием слайдов и позволяет реализовать сложные
интерактивные интерфейсы без лишних задержек и мерцаний контента. Оно
идеально подходит для запуска анимаций, динамической подгрузки данных и
управления мультимедиа после завершения перехода.