Библиотека fullPage.js обеспечивает удобное создание полноэкранных веб-сайтов с вертикальной или горизонтальной прокруткой. Одной из ключевых особенностей на мобильных устройствах является поддержка жестов, таких как свайпы вверх, вниз, влево и вправо. Понимание и правильная настройка этих возможностей позволяет создавать плавные, отзывчивые интерфейсы.
По умолчанию fullPage.js распознаёт свайпы на мобильных устройствах. Управление этой функциональностью осуществляется через опцию:
new fullpage('#fullpage', {
// Включение свайпов
touchSensitivity: 15, // Чувствительность к движению пальца
normalScrollElements: '.scrollable', // Элементы с обычной прокруткой
});
touchSensitivity определяет, насколько сильно нужно провести пальцем, чтобы система распознала свайп. Меньшее значение делает свайпы более чувствительными, большее – требует более длинного движения.
FullPage.js поддерживает как вертикальные, так и горизонтальные свайпы. Если на странице используются слайды внутри секций, можно управлять свайпами для слайдов отдельно:
new fullpage('#fullpage', {
controlArrows: true, // Показывать стрелки управления слайдами
slidesNavigation: true, // Индикаторы слайдов
loopHorizontal: false, // Запрет циклической прокрутки слайдов
touchSensitivity: 20,
continuousVertical: false
});
FullPage.js предоставляет события, которые позволяют реагировать на свайпы:
onSlideLeave — вызывается при уходе с одного слайда на
другой.onLeave — срабатывает при переходе с одной секции на
другую.afterSlideLoad — выполняется после завершения анимации
слайда.afterLoad — выполняется после завершения анимации
секции.Пример использования события свайпа для секций:
new fullpage('#fullpage', {
onLeave: function(origin, destination, direction){
if(direction === 'down'){
console.log('Свайп вниз');
} else if(direction === 'up'){
console.log('Свайп вверх');
}
}
});
'up'
или 'down')Для горизонтальных свайпов используется аналогичный подход через
onSlideLeave:
onSlideLeave: function(section, origin, destination, direction){
if(direction === 'right'){
console.log('Свайп вправо');
} else if(direction === 'left'){
console.log('Свайп влево');
}
}
На мобильных устройствах часто встречаются элементы с собственной прокруткой, например списки или текстовые блоки. Чтобы избежать конфликта свайпов fullPage.js с этими элементами, используется параметр normalScrollElements:
new fullpage('#fullpage', {
normalScrollElements: '.scrollable, .another-scrollable',
normalScrollElementTouchThreshold: 5
});
Для точной работы свайпов на различных устройствах и браузерах применяются:
Пример:
new fullpage('#fullpage', {
fitToSection: true,
fitToSectionDelay: 100,
scrollBar: false,
touchSensitivity: 20
});
onLeave и
onSlideLeave для анимации или загрузки контента при
свайпе.new fullpage('#fullpage', {
scrollingSpeed: 700,
fitToSection: true,
fitToSectionDelay: 100,
touchSensitivity: 20,
continuousVertical: false,
loopHorizontal: false,
normalScrollElements: '.scrollable',
onLeave: function(origin, destination, direction){
console.log('Секция: ', origin.index, ' -> ', destination.index, ' Дирекция: ', direction);
},
onSlideLeave: function(section, origin, destination, direction){
console.log('Слайд: ', origin.index, ' -> ', destination.index, ' Дирекция: ', direction);
}
});
Эта конфигурация обеспечивает стабильное распознавание свайпов на мобильных устройствах, плавные анимации и корректную работу внутренних скролл-блоков.