Библиотека fullPage.js предоставляет возможность создавать полноэкранные сайты с вертикальной и горизонтальной навигацией. Одной из ключевых особенностей является циклическая прокрутка, когда при достижении последнего слайда или секции происходит возврат к первому, создавая эффект бесконечной карусели.
Для включения циклической прокрутки используется параметр
loopTop, loopBottom для вертикальных секций и
loopHorizontal для горизонтальных слайдов:
new fullpage('#fullpage', {
loopTop: true, // При прокрутке вверх с первой секции — переход на последнюю
loopBottom: true, // При прокрутке вниз с последней секции — переход на первую
loopHorizontal: true, // Горизонтальная карусель для слайдов внутри секции
navigation: true,
controlArrows: true
});
loopTop и loopBottom работают только для вертикальных секций. Если активна горизонтальная навигация внутри секции (слайды), то для них используется loopHorizontal. Это особенно полезно для блоков с галереями или слайд-шоу.
Каждая секция может содержать несколько слайдов, организованных
внутри контейнера fp-slides. Для циклической горизонтальной
прокрутки достаточно добавить параметр loopHorizontal: true
и убедиться, что слайды обернуты в fp-slides:
<div class="section">
<div class="slide">Слайд 1</div>
<div class="slide">Слайд 2</div>
<div class="slide">Слайд 3</div>
</div>
new fullpage('#fullpage', {
loopHorizontal: true,
controlArrows: true,
slidesNavigation: true
});
При этом можно одновременно использовать вертикальную циклическую прокрутку, сочетая оба эффекта.
FullPage.js предоставляет API для программного переключения слайдов:
fullpage_api.moveSlideRight() — переход к следующему
слайду с учётом цикла.fullpage_api.moveSlideLeft() — переход к предыдущему
слайду.fullpage_api.moveTo(sectionIndex, slideIndex) — переход
к конкретной секции и слайду.Цикличность автоматически учитывается, если включен
loopHorizontal. Например:
document.querySelector('.next-slide').addEventListener('click', () => {
fullpage_api.moveSlideRight();
});
Даже если пользователь находится на последнем слайде, вызов
moveSlideRight() переместит его на первый слайд, сохраняя
плавность анимации.
FullPage.js позволяет отслеживать события при переключении слайдов, что полезно для динамических эффектов или обновления UI:
afterSlideLoad(section, origin, destination, direction)
— срабатывает после завершения перехода между слайдами.onSlideLeave(section, origin, destination, direction) —
срабатывает при начале смены слайда.Пример использования:
new fullpage('#fullpage', {
loopHorizontal: true,
afterSlideLoad: function(section, origin, destination, direction){
console.log(`Переход на слайд ${destination.index + 1} в секции ${section.index + 1}`);
}
});
Использование этих событий позволяет управлять дополнительной логикой при циклической прокрутке, например запускать анимации или обновлять индикаторы текущего слайда.
Для секций с горизонтальными слайдами доступны стрелки и индикаторы:
Если включена цикличность, стрелки и точки корректно обновляют активный слайд при переходе с последнего на первый или с первого на последний.
new fullpage('#fullpage', {
loopHorizontal: true,
controlArrows: true,
slidesNavigation: true
});
loopTop,
loopBottom для секций и loopHorizontal для
слайдов одновременно позволяет создать полностью бесконечный UX.afterSlideLoad и
onSlideLeave идеально подходят для запуска CSS или
JS-анимаций при циклическом переходе.controlArrows) и точек (slidesNavigation)
обеспечивает удобную ориентацию, даже если пользователь перемещается
циклически.Циклическая прокрутка слайдов в fullPage.js позволяет создавать интерфейсы с плавной и бесконечной навигацией, сочетая вертикальные и горизонтальные движения, а гибкий API открывает широкие возможности для программного управления и интеграции интерактивных эффектов.