FullPage.js предоставляет возможность создавать полноэкранные сайты с горизонтальной и вертикальной прокруткой, но помимо основной навигации между секциями, библиотека поддерживает прокрутку внутри отдельных секций, что позволяет добавлять много контента без нарушения плавности и структуры сайта.
Для добавления вертикальной прокрутки внутри секций используется
опция scrollOverflow. Она позволяет автоматически добавлять
прокручиваемую область, если контент секции превышает высоту экрана.
new fullpage('#fullpage', {
scrollOverflow: true
});
scrollOverflow: true активирует автоматическую
прокрутку содержимого внутри секций.scrolloverflow.min.js, который обеспечивает обработку
прокрутки.fp-scrollable, внутри которого происходит
скроллинг.<div class="section">
<div class="fp-scrollable">
<div class="fp-scroller">
<!-- Длинный контент -->
</div>
</div>
</div>
.fp-scrollable {
max-height: 100vh;
overflow: hidden;
}
.fp-scroller {
overflow-y: auto;
height: 100%;
}
FullPage.js позволяет создавать горизонтальные слайды внутри секции с
опцией slidesNavigation. Если контент горизонтальный, можно
сочетать прокрутку внутри слайдов и вертикальную прокрутку между
секциями.
new fullpage('#fullpage', {
scrollOverflow: true,
slidesNavigation: true,
controlArrows: true
});
slide.fp-scrollable и fp-scroller.FullPage.js предоставляет расширенные возможности настройки поведения
внутренней прокрутки через объект
scrollOverflowOptions:
new fullpage('#fullpage', {
scrollOverflow: true,
scrollOverflowOptions: {
scrollbars: true,
mouseWheel: true,
interactiveScrollbars: true,
click: true
}
});
scrollbars: true — отображение полос прокрутки.mouseWheel: true — прокрутка колесиком мыши.interactiveScrollbars: true — возможность перетаскивать
ползунок мышью.click: true — активирует клики на контенте внутри
прокрутки.Эти параметры передаются внутреннему плагину iscroll.js, который используется fullPage.js для управления overflow.
Если содержимое секции изменяется после инициализации fullPage.js, необходимо обновить прокрутку внутри секции:
fullpage_api.reBuild();
reBuild() пересчитывает размеры секций и
обновляет контейнеры fp-scrollable.FullPage.js позволяет отслеживать прокрутку внутри секции с помощью
событий onScrollOverflow и afterRender:
new fullpage('#fullpage', {
scrollOverflow: true,
afterRender: function(){
console.log('FullPage инициализирован');
},
onScrollOverflow: function(section, scrollable){
console.log('Секция прокручена', section);
}
});
section — объект текущей секции.scrollable — элемент с классом
fp-scrollable, внутри которого можно отслеживать события
scroll стандартными средствами Jav * aScript:scrollable.addEventListener('scroll', function() {
console.log('Прокрутка внутри секции');
});
На мобильных устройствах внутренний скролл работает через тач-события, при этом:
fitToSection: false или использовать
normalScrollElements.new fullpage('#fullpage', {
scrollOverflow: true,
normalScrollElements: '.fp-scrollable',
});
normalScrollElements позволяет fullPage.js игнорировать
прокрутку в указанных контейнерах и не переключать секции.height: 100vh).overflow: hidden для внешних контейнеров и
overflow-y: auto для внутренних.Прокрутка внутри секций в fullPage.js открывает широкие возможности
для создания многоуровневых интерфейсов, сохраняя при этом плавную
навигацию между основными секциями. Правильная настройка
scrollOverflow и обработка событий позволяют интегрировать
длинный контент без нарушения UX и дизайна сайта.