Якоря (anchors) в fullPage.js — это человекочитаемые идентификаторы
секций, которые напрямую связываются с URL страницы. Вместо стандартных
фрагментов вида #section1, используются осмысленные
значения (#about, #contacts,
#services), что делает навигацию предсказуемой и улучшает
индексируемость.
Каждая секция получает собственный якорь, который:
Инициализация fullPage.js с якорями выполняется через параметр
anchors:
new fullpage('#fullpage', {
anchors: ['main', 'about', 'services', 'contacts']
});
HTML-разметка:
<div id="fullpage">
<div class="section">Главная</div>
<div class="section">О нас</div>
<div class="section">Услуги</div>
<div class="section">Контакты</div>
</div>
Порядок якорей строго соответствует порядку секций. Несоответствие приводит к некорректной навигации.
При использовании якорей URL принимает вид:
https://example.com/#services
Ключевые особенности:
Для повышения SEO-эффективности:
services,
pricing, portfolio)Для синхронизации меню и секций используется параметр
menu:
new fullpage('#fullpage', {
anchors: ['main', 'about', 'services', 'contacts'],
menu: '#menu'
});
HTML:
<ul id="menu">
<li data-menuanchor="main"><a href="#main">Главная</a></li>
<li data-menuanchor="about"><a href="#about">О нас</a></li>
<li data-menuanchor="services"><a href="#services">Услуги</a></li>
<li data-menuanchor="contacts"><a href="#contacts">Контакты</a></li>
</ul>
Преимущества:
Управление поведением якорей:
new fullpage('#fullpage', {
anchors: ['main', 'about'],
lockAnchors: true
});
Если lockAnchors: true:
Используется в случаях, когда:
Для SEO этот режим нежелателен, так как URL теряет информативность.
Параметр recordHistory:
new fullpage('#fullpage', {
anchors: ['main', 'about'],
recordHistory: true
});
Поведение:
true — добавляет записи в историю браузераfalse — заменяет текущий URL без создания новой
записиSEO и UX аспекты:
Якоря позволяют открывать страницу сразу на нужной секции:
https://example.com/#contacts
fullPage.js автоматически:
Это важно для:
При наличии горизонтальных слайдов структура URL усложняется:
new fullpage('#fullpage', {
anchors: ['main', 'about'],
});
URL может выглядеть так:
#about/slide2
Формат:
#anchor/slideAnchor
Для слайдов также можно задавать anchors:
<section class="section">
<div class="slide" data-anchor="slide1"></div>
<div class="slide" data-anchor="slide2"></div>
</section>
Несмотря на удобство, якоря имеют ограничения:
Типичные проблемы:
<title> и
<meta description>1. Использование History API
Режим без якорей:
new fullpage('#fullpage', {
anchors: ['main', 'about'],
recordHistory: true
});
В сочетании с серверной маршрутизацией можно эмулировать полноценные URL:
/about
/services
2. Динамическое обновление мета-тегов
Через Jav * aScript:
afterLoad: function(origin, destination){
if(destination.anchor === 'about'){
document.title = 'О нас';
}
}
Позволяет:
<title><meta description>3. Предрендеринг (Prerendering)
Использование инструментов:
Цель:
4. Серверный рендеринг (SSR)
Интеграция с:
Даёт:
Несоответствие количества якорей и секций
anchors: ['main', 'about']
при 3 секциях приводит к сбоям.
Использование кириллицы
anchors: ['главная', 'о-нас']
Проблемы:
Рекомендуется латиница:
glavnaya → main
o-nas → about
Дублирование якорей
anchors: ['about', 'about']
Вызывает:
Смешивание ручной и автоматической навигации
Использование location.hash вручную может конфликтовать
с fullPage.js.
Однако при большом количестве секций:
Мультиязычные якоря
anchors: ['en-about', 'ru-about']
Позволяет:
Генерация anchors динамически
const sections = document.querySelectorAll('.section');
const anchors = Array.from(sections).map((el, i) => `section${i}`);
new fullpage('#fullpage', { anchors });
Используется при:
Интеграция с аналитикой
Отслеживание переходов:
afterLoad: function(origin, destination){
console.log(destination.anchor);
}
Применение:
Позволяет анализировать:
Корректная настройка anchors в fullPage.js формирует логичную навигационную модель, улучшает пользовательский опыт и создаёт основу для последующей SEO-оптимизации даже в рамках одностраничных приложений.