FullPage.js предоставляет богатый набор функций для создания полноэкранных скроллируемых сайтов, однако при использовании нескольких расширений одновременно необходимо учитывать их совместимость. Некорректная интеграция может привести к конфликтам в поведении навигации, анимаций или событий.
1. ScrollOverflow Расширение ScrollOverflow отвечает за добавление вертикального скролла внутри секций, если их содержимое превышает высоту экрана.
scrollHorizontally,
parallax), могут некорректно определять текущую позицию
внутри секции.scrollOverflowOptions должна быть согласована
с параметрами других расширений, использующих внутренние контейнеры
секций. Например, при включении parallax следует отключать
прокрутку внутри элементов с эффектом параллакса.2. Navigation и SlideNavigation Расширения навигации отвечают за отображение буллетов и стрелок для перехода между секциями и слайдами.
menu и anchors
необходимо следить за тем, чтобы имена якорей не конфликтовали с
навигационными элементами других расширений.scrollHorizontally.3. ScrollHorizontally Позволяет создавать горизонтальные слайды внутри секций.
interlockedSlides при наличии внутренних скроллов.onSlideLeave или
onLeave с кастомными функциями, изменяющими прокрутку.4. Parallax Добавляет параллакс-эффект для фонов и контента секций.
afterLoad и
onLeave, если они изменяют позиции элементов.5. Responsive Extensions FullPage.js поддерживает
адаптивное поведение через опции responsiveWidth и
responsiveHeight.
scrollHorizontally и
parallax) при уменьшении размеров экрана могут перестать
работать. Настройка адаптивных условий должна учитывать отключение
расширений на малых разрешениях.Инициализация в правильном порядке Некоторые
расширения требуют, чтобы fullPage.js был полностью инициализирован
перед их подключением. Например, scrollHorizontally и
parallax должны инициализироваться после основной
конфигурации секций.
Изоляция кастомных обработчиков Обработчики
событий (onLeave, afterLoad,
onSlideLeave) должны учитывать, какое расширение активно,
чтобы избежать конфликтов. Рекомендуется использовать проверки типа
if (fullpage_api.getActiveSlide()) для внутренних
слайдов.
Согласование CSS и DOM-структуры Многие расширения создают собственные контейнеры и стили. Конфликты часто возникают, если пользовательские CSS-правила или скрипты изменяют DOM-структуру секций.
Тестирование на всех разрешениях Полноэкранные сайты с несколькими расширениями могут вести себя по-разному на десктопе, планшете и мобильных устройствах. Тестирование должно включать проверку скролла, навигации и анимаций в различных сочетаниях расширений.
| Проблема | Возможная причина | Решение |
|---|---|---|
| Скролл не реагирует на колёсико мыши | Конфликт ScrollOverflow и ScrollHorizontally | Использовать interlockedSlides: true и проверять
внутренние контейнеры |
| Параллакс сдвигается некорректно | Элементы параллакса внутри скроллимой секции | Перенести элементы параллакса в отдельный контейнер или отключить внутренний скролл |
| Навигация по якорям не срабатывает | Совпадение anchor с menu и SlideNavigation | Проверить уникальность якорей и синхронизировать меню с API fullPage.js |
| Адаптивность ломается | Расширения активны на малых разрешениях | Использовать
responsiveWidth/responsiveHeight для
отключения конфликтующих расширений |
fullpage_api.reBuild(),
fullpage_api.setAllowScrolling()) после динамических
изменений DOM для корректной работы расширений.Совместимость расширений fullPage.js требует внимательного подхода к порядку и параметрам их инициализации, правильного управления событиями и адаптивного поведения. Учет этих факторов позволяет избежать конфликтов и обеспечить стабильную работу полноэкранного интерфейса с множеством функций.