FullPage.js — это мощная библиотека для создания эффектных полноэкранных скроллируемых сайтов. При обновлениях библиотеки важно учитывать обратную совместимость, чтобы существующие проекты продолжали корректно работать при переходе на новые версии. Обратная совместимость касается как API, так и структуры HTML/CSS, а также поведения событий и методов.
FullPage.js ожидает определённую структуру документа. Для корректной работы каждой версии необходимо:
section) должен быть заключён в контейнер
с классом .section..slide внутри
.section.new fullpage('#id', options).Если структура изменяется в новой версии, старые страницы могут перестать корректно отображаться. Для обратной совместимости большинство изменений в HTML должны поддерживать старый синтаксис:
<div id="fullpage">
<div class="section">Секция 1</div>
<div class="section">
Секция 2
<div class="slide">Слайд 1</div>
<div class="slide">Слайд 2</div>
</div>
</div>
FullPage.js со временем меняет и расширяет API, но старается сохранять старые методы. Например:
moveSectionUp() и moveSectionDown()
остаются в актуальной версии.moveTo(section, slide) также работает для перехода к
определённой секции или слайду.Новые методы часто дополняют старые, а не заменяют их, что позволяет минимизировать изменения кода при апгрейде.
В версиях до 4.x для вертикальной навигации использовалась опция
verticalCentered: true. В новой версии она может быть
заменена на CSS-правила display: flex и
justify-content: center. Для обратной совместимости
библиотека позволяет старый синтаксис:
new fullpage('#fullpage', {
verticalCentered: true, // старая опция
navigation: true,
scrollingSpeed: 700
});
FullPage.js предоставляет множество событий: afterLoad,
onLeave, afterSlideLoad,
onSlideLeave. При обновлении версии важно следить за
сигнатурой колбэков. Для обратной совместимости:
afterLoad(origin, destination, direction) остаётся для
старых проектов.Пример использования событий с сохранением обратной совместимости:
new fullpage('#fullpage', {
afterLoad: function(origin, destination, direction){
console.log('Текущая секция:', destination.index);
},
onLeave: function(origin, destination, direction){
console.log('Покидаем секцию', origin.index);
}
});
FullPage.js старается обеспечивать кроссбраузерность. В старых версиях активно использовался CSS-трансформ для анимаций. В новых версиях добавляется поддержка CSS Grid и современных анимаций, но старый код остаётся рабочим через поллифиллы и fallback-решения. Основные моменты:
scrolling, navigation)
работает.ES5) остаются совместимыми с
большинством методов библиотеки.При переходе с версии 3.x на 4.x или выше необходимо:
deprecated.fullpage.compat.js.Пример режима совместимости для старого кода:
<script src="fullpage.compat.js"></script>
<script>
new fullpage('#fullpage', {
navigation: true,
scrollBar: false,
verticalCentered: true // поддерживается старый синтаксис
});
</script>
.section и
.slide.Эта стратегия позволяет использовать новые версии fullPage.js, не ломая существующие проекты, и постепенно адаптировать код под современные возможности библиотеки.