FullPage.js предоставляет встроенные механизмы для организации вертикальной и горизонтальной прокрутки страниц. Автоматическая прокрутка позволяет создавать динамичные презентации или лендинги, где пользовательский интерфейс сам плавно перемещается между секциями без необходимости взаимодействия с мышью или клавиатурой.
Для реализации автоматической прокрутки ключевым является
использование метода moveSectionDown() или
moveSectionUp(), а также конфигурации с таймером.
Создание автоматической прокрутки требует функции
setInterval или setTimeout, которая
периодически вызывает методы навигации fullPage.js. Пример базовой
реализации:
var autoScrollInterval = setInterval(function(){
fullpage_api.moveSectionDown();
}, 5000); // каждые 5 секунд
Пояснения:
fullpage_api.moveSectionDown() – переход к следующей
секции.Для возврата к первой секции можно использовать метод
moveTo(sectionIndex):
if(fullpage_api.getActiveSection().index === fullpage_api.getTotalSections() - 1){
fullpage_api.moveTo(1);
}
FullPage.js предоставляет опцию autoScrolling, которая
включается при инициализации:
new fullpage('#fullpage', {
autoScrolling: true,
scrollHorizontally: true,
fitToSection: true
});
Ключевые моменты:
autoScrolling: true – включает стандартное поведение
скролла fullPage.js.fitToSection: true – обеспечивает автоматическую
привязку к ближайшей секции после завершения скролла, что делает
автопрокрутку более плавной.scrollHorizontally: true – если секции содержат
горизонтальные слайды, автопрокрутка может распространяться на них.Чтобы сохранить UX и предотвратить конфликт с ручной прокруткой, часто используют остановку автопрокрутки при наведении или скролле пользователем:
var autoScrollInterval = setInterval(function(){
fullpage_api.moveSectionDown();
}, 5000);
document.querySelector('#fullpage').addEventListener('mouseenter', function(){
clearInterval(autoScrollInterval);
});
document.querySelector('#fullpage').addEventListener('mouseleave', function(){
autoScrollInterval = setInterval(function(){
fullpage_api.moveSectionDown();
}, 5000);
});
Пояснения:
mouseenter – при наведении мыши автопрокрутка
останавливается.mouseleave – возобновление после ухода курсора.FullPage.js поддерживает горизонтальные слайды
внутри секций. Для их автоматической прокрутки используется метод
moveSlideRight():
var slideInterval = setInterval(function(){
var activeSlide = fullpage_api.getActiveSlide();
if(activeSlide.isLast){
fullpage_api.moveSectionDown();
} else {
fullpage_api.moveSlideRight();
}
}, 4000);
Особенности:
isLast предотвращает зацикливание на последнем
слайде.FullPage.js предоставляет несколько опций, влияющих на плавность автопрокрутки:
new fullpage('#fullpage', {
scrollingSpeed: 700, // скорость прокрутки в миллисекундах
easing: 'easeInOutCubic', // плавность анимации
fitToSection: true
});
Рекомендации:
scrollingSpeed подбирается исходя из длительности
интервала автопрокрутки, чтобы переход был естественным.easing позволяет задать кривую анимации:
'linear', 'easeInOutCubic',
'easeInOutQuad'.fitToSection: true гарантирует, что прокрутка всегда
останавливается точно на секции.onLeave и afterLoad, позволяют
синхронизировать автопрокрутку с появлением анимаций внутри секций.new fullpage('#fullpage', {
onLeave: function(origin, destination, direction){
console.log('Переход из секции', origin.index, 'в секцию', destination.index);
},
afterLoad: function(origin, destination, direction){
if(destination.index === 2){
// активировать дополнительную анимацию или таймер
}
}
});
Автоматическая прокрутка в fullPage.js сочетает в себе контроль таймеров, встроенные методы навигации и события жизненного цикла секций, что позволяет создавать динамичные, плавные и полностью управляемые скролл-презентации.