При обновлении проекта на новую версию fullPage.js часто возникают ситуации, когда старый код перестаёт работать корректно. Основные причины включают изменения API, удаление устаревших опций и новые требования к структуре HTML.
Типичные симптомы:
afterLoad или
onLeave, не вызываются.fullPage.js версии 4 и выше требует строгой структуры блоков:
<div id="fullpage">
<div class="section">Секция 1</div>
<div class="section">Секция 2</div>
<div class="section">Секция 3</div>
</div>
Ключевые моменты:
id
или class.section.slide.Ошибки при миграции часто связаны с отсутствием этих классов или изменением структуры DOM, из-за чего fullPage.js не может корректно вычислить высоту и положение секций.
Многие опции старых версий были удалены или заменены:
| Старый параметр | Новый эквивалент | Примечание |
|---|---|---|
anchors |
anchors |
Остался, но синтаксис вызова обработчиков изменился |
css3 |
убран, fullPage.js всегда использует CSS3 при возможности | Не нужно указывать |
scrollingSpeed |
scrollingSpeed |
Значение в миллисекундах |
fitToSection |
fitToSection |
Можно отключить для кастомного скроллинга |
Методы:
moveSectionDown() сохраняется, но теперь
рекомендуется использовать
fullpage_api.moveSectionDown().fullpage_api.setAllowScrolling(false) и события
afterLoad, onLeave через объект конфигурации
при инициализации.Если при миграции перестали работать функции типа
onLeave:
new fullpage('#fullpage', {
onLeave: function(origin, destination, direction){
console.log(origin.index, destination.index);
}
});
origin корректно передаётся.index, anchor,
item, а не просто число.Ранее часто использовался параметр responsiveWidth или
responsiveHeight. В новых версиях рекомендуется:
responsiveSlides для слайдов внутри
секции.При использовании анимаций (GSAP, Anime.js) или параллакса:
afterRender).fullpage_api.setAllowScrolling(false) перед запуском
кастомной анимации и включать обратно после завершения.fullpage_api
или DOM.fullpage_api.getActiveSection() для
контроля текущей секции во время миграции и отладки.В новых версиях:
touchSensitivity.fullpage_api.setAllowScrolling(false, 'touch').Полезная стратегия:
new fullpage('#fullpage', {...}).fullpage_api.afterLoad
и onLeave, чтобы убедиться, что обработчики вызываются
корректно.Эти шаги позволяют минимизировать риск ошибок при переходе на новую версию библиотеки и сохранить весь функционал проекта.