Для работы слайдовой навигацией в fullPage.js необходимо правильно структурировать HTML-разцию. Основной контейнер должен иметь идентификатор или класс, который используется при инициализации:
<div id="fullpage">
<div class="section">Первая секция</div>
<div class="section">
Вторая секция
<div class="slide">Слайд 1</div>
<div class="slide">Слайд 2</div>
<div class="slide">Слайд 3</div>
</div>
<div class="section">Третья секция</div>
</div>
Важные моменты:
.section — отдельная полноэкранная
секция..slide — горизонтальные слайды внутри
секции.Инициализация производится через new fullpage() с
конфигурацией:
new fullpage('#fullpage', {
autoScrolling: true,
navigation: true,
controlArrows: true,
slidesNavigation: true,
loopHorizontal: false
});
fullPage.js поддерживает горизонтальное перелистывание слайдов внутри секции:
fullpage_api.moveSlideRight();
fullpage_api.moveSlideLeft();
fullpage_api.moveTo(sectionIndex, slideIndex);
Где sectionIndex — номер секции (начинается с 1),
slideIndex — номер слайда внутри секции (начинается с
0).
Для создания автоматической карусели можно использовать таймер и
метод moveSlideRight():
setInterval(() => {
const activeSection = fullpage_api.getActiveSection();
const slides = activeSection.slides.length;
const activeSlide = fullpage_api.getActiveSlide().index;
if (activeSlide < slides - 1) {
fullpage_api.moveSlideRight();
} else {
fullpage_api.moveTo(activeSection.index + 1, 0);
}
}, 5000);
Особенности:
scrollingSpeed.Стрелки для слайдов управляются опцией controlArrows при
инициализации. Можно кастомизировать стрелки с помощью CSS:
.fp-controlArrow.fp-prev {
background-image: url('arrow-left.svg');
}
.fp-controlArrow.fp-next {
background-image: url('arrow-right.svg');
}
Для управления нижней навигацией (точки для слайдов) используется
slidesNavigation:
new fullpage('#fullpage', {
slidesNavigation: true,
slidesNavPosition: 'bottom'
});
fullPage.js предоставляет API для отслеживания и управления слайдами:
afterSlideLoad: function(section, origin, destination, direction){
console.log(`Секция: ${section.index}, Слайд: ${destination.index}`);
}
onSlideLeave: function(section, origin, destination, direction){
console.log(`Покидаем слайд ${origin.index}, идём на ${destination.index}`);
}
Эти события позволяют:
Опции loopHorizontal и loopBottom управляют
цикличностью слайдов и секций:
new fullpage('#fullpage', {
loopHorizontal: true, // позволяет перелистывать слайды по кругу
loopBottom: true // позволяет переходить с последней секции на первую
});
Для каждой секции можно индивидуально задавать свойства:
<div class="section" data-loop-h="true">
<div class="slide">Слайд 1</div>
<div class="slide">Слайд 2</div>
</div>
fullPage.js автоматически распознаёт атрибут data-loop-h
и применяет настройки.
Для динамического управления и отладки можно получить активные элементы:
const activeSection = fullpage_api.getActiveSection();
const activeSlide = fullpage_api.getActiveSlide();
console.log(activeSection.index); // Индекс секции
console.log(activeSlide.index); // Индекс слайда
Также доступен массив всех слайдов в секции:
const slides = activeSection.slides;
slides.forEach(slide => console.log(slide.item));
fullPage.js поддерживает CSS-анимации для слайдов. Рекомендуется
использовать классы .active и
.fp-completely:
.section .slide {
opacity: 0;
transition: opacity 0.5s ease;
}
.section .slide.active {
opacity: 1;
}
События afterSlideLoad и onSlideLeave
позволяют добавлять или удалять анимации динамически.
| Метод | Описание |
|---|---|
moveSlideRight() |
Перейти к следующему слайду |
moveSlideLeft() |
Перейти к предыдущему слайду |
moveTo(sectionIndex, slideIndex) |
Перейти к конкретной секции и слайду |
getActiveSection() |
Получить текущую секцию |
getActiveSlide() |
Получить текущий слайд |
afterSlideLoad |
Событие после загрузки слайда |
onSlideLeave |
Событие при уходе со слайда |
Эта функциональность позволяет строить полноценные горизонтальные карусели, слайдеры внутри секций и сложные анимационные эффекты с программным управлением.