Библиотека fullPage.js предоставляет развитый API для управления прокруткой и переходами между секциями и слайдами без участия пользователя. Это позволяет реализовывать сложные сценарии взаимодействия: автоматические переходы, синхронизацию с внешними элементами интерфейса, интеграцию с логикой приложения.
Управление осуществляется через методы, доступные в экземпляре
fullPage, либо через глобальный объект fullpage_api (в
версиях 3+).
Ключевой метод для навигации между вертикальными секциями:
fullpage_api.moveTo(section, slide);
Параметры:
section — индекс (начиная с 1) или якорь секцииslide — необязательный параметр, индекс или якорь
слайдаПримеры:
fullpage_api.moveTo(2);
fullpage_api.moveTo('about');
fullpage_api.moveTo(3, 2);
Особенности:
anchors)Для перемещения по порядку используются методы:
fullpage_api.moveSectionDown();
fullpage_api.moveSectionUp();
Аналогично для горизонтальных слайдов:
fullpage_api.moveSlideRight();
fullpage_api.moveSlideLeft();
Применение:
fullpage_api.setAllowScrolling(false);
Назначение:
Включение обратно:
fullpage_api.setAllowScrolling(true);
fullpage_api.setAllowScrolling(false, 'down, right');
Доступные направления:
updownleftrightПозволяет ограничивать движение только в определённые стороны.
fullpage_api.setKeyboardScrolling(false);
Отключает управление с клавиатуры (стрелки, PageUp/PageDown).
fullpage_api.setAutoScrolling(false);
Режимы:
true — классическое поведение fullPage (секции
фиксированы)false — обычная прокрутка страницыДополнительно:
fullpage_api.setFitToSection(false);
Отключает автоматическое «прилипание» к секциям.
Часто управление выполняется в ответ на действия пользователя или события приложения.
document.querySelector('#goToContact').addEventListener('click', () => {
fullpage_api.moveTo('contact');
});
setTimeout(() => {
fullpage_api.moveSectionDown();
}, 3000);
function onDataLoaded() {
fullpage_api.moveTo('dashboard');
}
Метод:
fullpage_api.getActiveSection();
Возвращает объект с данными:
{
index: 0,
anchor: "home",
item: HTMLElement
}
Аналогично для слайда:
fullpage_api.getActiveSlide();
Возможна реализация логики переходов:
const current = fullpage_api.getActiveSection().index;
if (current === 0) {
fullpage_api.moveTo(3);
}
Якоря задаются в конфигурации:
new fullpage('#fullpage', {
anchors: ['home', 'about', 'contact']
});
После этого:
fullpage_api.moveTo('about');
Преимущества:
fullPage.js автоматически обновляет URL при переходах, если включена опция:
recordHistory: true
Программный переход также изменяет URL:
fullpage_api.moveTo('contact');
Это позволяет:
fullpage_api.setRecordHistory(false);
Отключает запись переходов в историю браузера.
fullpage_api.setScrollingSpeed(1000);
Задает длительность анимации в миллисекундах.
fullpage_api.setScrollingSpeed(0);
fullpage_api.moveTo(2);
fullPage.js предоставляет callbacks, которые можно использовать для управления навигацией:
new fullpage('#fullpage', {
afterLoad: function(origin, destination, direction) {
if (destination.index === 2) {
fullpage_api.moveSlideRight();
}
}
});
function nextStep(step) {
fullpage_api.moveTo(step);
}
let interval = setInterval(() => {
fullpage_api.moveSectionDown();
}, 5000);
Остановка:
clearInterval(interval);
document.querySelectorAll('.menu-item').forEach((item, index) => {
item.addEventListener('click', () => {
fullpage_api.moveTo(index + 1);
});
});
Если секция содержит слайды:
fullpage_api.moveTo('portfolio', 'project2');
Или:
fullpage_api.moveSlideRight();
Можно запретить переход к определённым секциям:
new fullpage('#fullpage', {
onLeave: function(origin, destination, direction) {
if (destination.index === 3) {
return false;
}
}
});
fullpage_api.setAllowScrolling(false);
В комбинации с условиями позволяет реализовать:
После динамических изменений DOM:
fullpage_api.reBuild();
Это необходимо, если:
В React/Vue управление обычно осуществляется через ref или глобальный API:
window.fullpage_api.moveTo(2);
Важно учитывать:
1. Вызов API до инициализации
fullpage_api.moveTo(2); // ошибка, если fullPage ещё не создан
Решение — вызывать после инициализации.
2. Неправильные индексы
Индексация начинается с 1, а не с 0.
3. Отсутствие якорей
fullpage_api.moveTo('about'); // не сработает без anchors
Программная навигация часто используется вместе с CSS или JS-анимациями:
fullpage_api.moveTo(2);
setTimeout(() => {
document.querySelector('.element').classList.add('animate');
}, 700);
State-driven navigation:
function navigate(state) {
switch(state) {
case 'home':
fullpage_api.moveTo(1);
break;
case 'profile':
fullpage_api.moveTo(2);
break;
}
}
Router-like поведение:
window.addEventListener('hashchange', () => {
const hash = location.hash.replace('#', '');
fullpage_api.moveTo(hash);
});
Программное управление навигацией в fullPage.js превращает статическую прокрутку в управляемую систему переходов, позволяя строить сложные интерфейсы с высокой степенью интерактивности и контроля.