Библиотека fullPage.js предоставляет мощные средства для создания полноэкранных скроллируемых сайтов с вертикальной и горизонтальной навигацией. Одним из ключевых аспектов является управление позиционированием элементов навигации, чтобы обеспечить удобство пользовательского взаимодействия и корректное отображение на разных устройствах.
FullPage.js позволяет конфигурировать навигацию при инициализации через объект параметров:
new fullpage('#fullpage', {
navigation: true,
navigationPosition: 'right',
navigationTooltips: ['Главная', 'О нас', 'Услуги', 'Контакты'],
showActiveTooltip: true,
slidesNavigation: true,
slidesNavPosition: 'bottom',
});
Ключевые параметры:
'right' или 'left').'top' или 'bottom').Эти параметры формируют базовую структуру и позиционирование навигационных элементов без вмешательства CSS. Однако для более сложного дизайна требуется точная настройка через кастомные стили.
Вертикальная навигация представлена списком <ul> с
классом .fp-nav, который автоматически добавляется в DOM.
Расположение можно менять через CSS:
.fp-nav {
top: 50%;
transform: translateY(-50%);
}
.fp-nav.right {
right: 20px;
}
.fp-nav.left {
left: 20px;
}
.fp-nav ul li a span {
background: #3498db;
width: 12px;
height: 12px;
}
Особенности:
top: 50% с
transform: translateY(-50%) позволяет центрировать
вертикальный список по высоте экрана независимо от разрешения..right и .left управляют
горизонтальным смещением.span внутри ссылок
позволяет адаптировать размер, цвет и форму индикаторов.Для секций с горизонтальными слайдами используется элемент
.fp-slidesNav. Позиционирование осуществляется с помощью
класса .bottom или .top:
.fp-slidesNav {
position: absolute;
z-index: 100;
}
.fp-slidesNav.bottom {
bottom: 20px;
left: 50%;
transform: translateX(-50%);
}
.fp-slidesNav.top {
top: 20px;
left: 50%;
transform: translateX(-50%);
}
.fp-slidesNav ul li a span {
background: #e74c3c;
width: 10px;
height: 10px;
}
Рекомендации:
left: 50% и
transform: translateX(-50%) позволяет навигации
адаптироваться к ширине экрана.FullPage.js не ограничивает возможность адаптации навигации под разные устройства. Для этого можно использовать медиа-запросы:
@media (max-width: 768px) {
.fp-nav {
right: 10px;
}
.fp-slidesNav.bottom {
bottom: 10px;
}
}
Особенности адаптивного позиционирования:
Для создания уникального дизайна часто используется кастомная навигация. С помощью событий fullPage.js можно синхронизировать собственные элементы с прокруткой:
new fullpage('#fullpage', {
onLeave: function(origin, destination, direction){
document.querySelectorAll('.custom-nav a').forEach((el, index) => {
el.classList.remove('active');
if(index === destination.index){
el.classList.add('active');
}
});
}
});
Принципы работы кастомной навигации:
onLeave для определения активной
секции.active позволяют управлять визуальным состоянием
индикаторов.Если страницы динамически добавляются или удаляются, необходимо
вызывать метод fullpage_api.reBuild() для
пересчета навигации и корректного позиционирования:
fullpage_api.reBuild();
Это особенно важно при работе с ленивой загрузкой контента или при добавлении секций через AJAX.
top/bottom/left/right и transform, избегая
жестких значений px для универсальности.Такой подход обеспечивает гибкое и точное управление положением навигационных элементов в fullPage.js, позволяя создавать как стандартные, так и полностью кастомные решения для веб-интерфейсов.