Для работы с fullPage.js необходимо подключить саму библиотеку и её CSS. В HTML это выглядит следующим образом:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/4.0.25/fullpage.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/4.0.25/fullpage.min.js"></script>
Основная структура страницы для fullPage.js строится вокруг
контейнера с классом #fullpage, внутри которого
располагаются секции с классом .section:
<div id="fullpage">
<div class="section">Секция 1</div>
<div class="section">Секция 2</div>
</div>
Инициализация производится через вызов конструктора:
new fullpage('#fullpage', {
autoScrolling: true,
navigation: true,
});
FullPage.js предоставляет встроенные методы для работы с динамическими секциями. Основные из них:
fullpage_api.addSection() Добавляет
новую секцию в конец контейнера. Может принимать HTML-код секции или
элемент DOM.fullpage_api.addSection('<div class="section">Новая секция</div>');
fullpage_api.addSection(index, element)
Позволяет вставить секцию на конкретную позицию, задаваемую индексом
(начало нумерации — 1).// Вставка перед третьей секцией
fullpage_api.addSection(3, '<div class="section">Вставленная секция</div>');
fullpage_api.moveTo(sectionIndex)
После добавления новой секции часто требуется перейти к ней
автоматически.fullpage_api.moveTo(fullpage_api.getTotalSections());
Для более сложных интерфейсов fullPage.js поддерживает вертикальные и горизонтальные слайды. Чтобы добавить горизонтальные слайды в уже существующую секцию, используют:
fullpage_api.addSlide(sectionIndex, '<div class="slide">Новый слайд</div>');
Если необходимо создать секцию с несколькими слайдами сразу, можно
сформировать HTML заранее и передать его через
addSection.
FullPage.js предоставляет систему событий, которая позволяет реагировать на добавление или удаление секций:
afterLoad – срабатывает после загрузки
новой секции.onLeave – срабатывает перед уходом с
секции.afterRender – вызывается после
инициализации fullPage.js, полезно для начального динамического
построения.Пример: при добавлении новой секции автоматически присваиваем ей уникальный идентификатор и добавляем анимацию:
const newSection = document.createElement('div');
newSection.classList.add('section');
newSection.id = `section-${fullpage_api.getTotalSections() + 1}`;
newSection.innerHTML = '<h2>Динамическая секция</h2>';
fullpage_api.addSection(newSection);
newSection.addEventListener('animationend', () => {
console.log(`Секция ${newSection.id} полностью загружена`);
});
FullPage.js позволяет не только добавлять, но и удалять секции динамически:
fullpage_api.removeSection(sectionIndex);
Важно помнить, что индексация секций меняется после удаления, поэтому
последующие вызовы addSection или moveTo нужно
корректировать.
Если требуется перестроить структуру полностью, допустимо
использовать метод fullpage_api.destroy('all'), после чего
можно заново инициализировать fullPage.js с обновленной разметкой.
Для интерфейсов, где контент загружается по мере прокрутки (infinite
scroll), можно комбинировать методы addSection и события
onLeave:
fullpage_api.setAllowScrolling(true);
fullpage_api.on('onLeave', (origin, destination, direction) => {
if (destination.index === fullpage_api.getTotalSections() - 1) {
fullpage_api.addSection('<div class="section">Следующая динамическая секция</div>');
}
});
Такой подход обеспечивает плавное расширение страницы без перезагрузки и сохраняет навигацию fullPage.js.
При частом динамическом добавлении секций стоит учитывать:
Эти рекомендации обеспечивают стабильную работу на больших проектах с десятками и сотнями динамических секций.