Для работы с fullPage.js необходимо подключить библиотеку и её стили. Библиотеку можно использовать через CDN или установить через npm. Пример подключения через CDN:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/4.1.0/fullpage.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/4.1.0/fullpage.min.js"></script>
Если используется npm:
npm install fullpage.js
import fullpage from 'fullpage.js';
import 'fullpage.js/dist/fullpage.min.css';
HTML-структура должна содержать контейнер с секциями:
<div id="fullpage">
<div class="section">Секция 1</div>
<div class="section">Секция 2</div>
<div class="section">Секция 3</div>
</div>
Каждая секция создаётся с классом .section, который
является обязательным для распознавания fullPage.js.
Для запуска скрипта используется конструктор
new fullpage():
new fullpage('#fullpage', {
autoScrolling: true,
navigation: true,
scrollingSpeed: 700,
});
Ключевые параметры:
autoScrolling – включает плавную прокрутку между
секциями.navigation – добавляет навигацию в виде точек
справа.scrollingSpeed – задаёт скорость анимации перехода
между секциями в миллисекундах.По умолчанию секции располагаются вертикально. Для добавления горизонтальных слайдов внутри секции используется структура:
<div class="section">
<div class="slide">Слайд 1</div>
<div class="slide">Слайд 2</div>
<div class="slide">Слайд 3</div>
</div>
Инициализация остаётся прежней. Навигация по слайдам осуществляется стрелками или свайпами. Дополнительно можно включить горизонтальные стрелки:
new fullpage('#fullpage', {
controlArrows: true,
slidesNavigation: true,
});
controlArrows – показывает стрелки для перехода между
слайдами.slidesNavigation – добавляет индикаторы навигации для
слайдов.Секции по умолчанию растягиваются на всю высоту экрана. Можно управлять поведением с помощью параметров:
new fullpage('#fullpage', {
responsiveWidth: 900,
responsiveHeight: 600,
fitToSection: true,
});
responsiveWidth и responsiveHeight –
отключают fullPage.js на экранах меньше указанных размеров.fitToSection – автоматически подстраивает секцию под
высоту окна при загрузке и изменении размера.Каждой секции можно присвоить уникальный id или
data-anchor, чтобы реализовать навигацию по URL:
<div class="section" data-anchor="home">Главная</div>
<div class="section" data-anchor="about">О нас</div>
<div class="section" data-anchor="contact">Контакты</div>
Инициализация с использованием якорей:
new fullpage('#fullpage', {
anchors: ['home', 'about', 'contact'],
navigation: true,
});
Теперь URL будет изменяться при переходе между секциями, например:
#about.
fullPage.js предоставляет множество событий для взаимодействия с секциями:
new fullpage('#fullpage', {
onLeave: function(origin, destination, direction){
console.log('Покидаем секцию', origin.index);
},
afterLoad: function(origin, destination, direction){
console.log('Загружена секция', destination.index);
}
});
onLeave – вызывается перед сменой секции.afterLoad – вызывается после завершения анимации
перехода.afterSlideLoad и onSlideLeave –
аналогичные события для слайдов внутри секций.С помощью этих событий можно запускать анимации, изменять классы или управлять внешними элементами интерфейса.
Для придания секциям индивидуального внешнего вида используются
CSS-классы .section и .slide. Например:
.section {
display: flex;
justify-content: center;
align-items: center;
font-size: 2rem;
}
.section:nth-child(odd) {
background-color: #3498db;
color: white;
}
.section:nth-child(even) {
background-color: #2ecc71;
color: white;
}
Это позволяет создавать контрастные секции, которые занимают весь экран и имеют удобочитаемое содержание.
Секции можно добавлять и удалять программно:
fullpage_api.addSection('Новая секция', document.getElementById('newSection'));
fullpage_api.moveSectionDown();
fullpage_api.removeSection(2);
addSection – добавляет новую секцию в конец.removeSection – удаляет указанную секцию по
индексу.moveSectionDown – позволяет программно перейти к
следующей секции.При большом количестве секций рекомендуется:
lazyLoad).scroll и
resize.new fullpage('#fullpage', {
lazyLoading: true,
});
lazyLoading откладывает загрузку медиафайлов до момента
появления секции на экране, что ускоряет начальную загрузку
страницы.
Используя сочетание вертикальных секций, горизонтальных слайдов, якорей и событий, fullPage.js позволяет создавать полностью интерактивные одностраничные сайты. Управление секциями может быть реализовано через API, а визуальные эффекты — через CSS и встроенные параметры библиотеки.