Shepherd.js предоставляет возможность управлять поведением всех шагов тура через глобальные опции, что позволяет задавать общие параметры и уменьшать дублирование кода. Глобальные опции определяются при создании экземпляра тура и влияют на все шаги, если для конкретного шага не заданы локальные настройки.
Основной синтаксис создания тура с глобальными настройками выглядит следующим образом:
const tour = new Shepherd.Tour({
defaultStepOptions: {
classes: 'shadow-md bg-purple-dark',
scrollTo: true,
cancelIcon: {
enabled: true
},
canClickTarget: false,
showCancelLink: true
},
useModalOverlay: true
});
Здесь ключевой параметр defaultStepOptions задаёт
набор опций, который автоматически применяется ко всем
шагам тура.
classes — CSS-классы для оформления окна шага.scrollTo — автоматически скроллит страницу к цели
шага.cancelIcon — отображение иконки закрытия шага.canClickTarget — позволяет или запрещает пользователю
кликать по целевому элементу.showCancelLink — добавляет ссылку для отмены тура.useModalOverlay — при значении true
создаёт затемнённый фон, блокируя взаимодействие с другими элементами
страницы.Каждый шаг тура может иметь собственные опции, которые переопределяют глобальные. Например:
tour.addStep({
id: 'custom-step',
text: 'Этот шаг имеет индивидуальные настройки.',
classes: 'custom-step-class',
scrollTo: false
});
В данном примере глобальная опция scrollTo: true не
применяется, так как для этого шага задано
scrollTo: false.
defaultStepOptions — объект с
настройками по умолчанию для шагов.useModalOverlay — включает или
отключает модальный фон для всего тура.keyboardNavigation — управляет
возможностью навигации через клавиши. Например:const tour = new Shepherd.Tour({
defaultStepOptions: {
classes: 'shepherd-theme-arrows',
scrollTo: true
},
useModalOverlay: true,
keyboardNavigation: false
});
exitOnEsc — позволяет пользователю
завершить тур клавишей Esc. Если значение false, тур не
закрывается через Esc.tourName — уникальный идентификатор
тура, полезен для сохранения состояния прохождения.Для единообразного оформления шагов можно определить CSS-классы глобально:
const tour = new Shepherd.Tour({
defaultStepOptions: {
classes: 'shepherd-theme-arrows custom-global-class'
}
});
Все шаги наследуют эти стили, что позволяет централизованно управлять визуальным оформлением без необходимости задавать классы для каждого шага.
Shepherd.js поддерживает глобальные обработчики событий тура, которые применяются ко всем шагам. Например:
tour.on('show', function() {
console.log('Шаг показан');
});
tour.on('complete', function() {
console.log('Тур завершён');
});
События, зарегистрированные на уровне тура, позволяют реализовать единый механизм логирования или интеграции с другими библиотеками, такими как аналитика или пользовательские уведомления.
Глобальные опции позволяют заранее задать кнопки для всех шагов, чтобы избежать повторного описания:
const tour = new Shepherd.Tour({
defaultStepOptions: {
buttons: [
{
text: 'Назад',
action: tour.back
},
{
text: 'Далее',
action: tour.next
}
]
}
});
Каждый шаг автоматически получает эти кнопки, но их можно переопределить при необходимости.
Правильное использование глобальных опций значительно сокращает объём
кода, особенно в больших приложениях с десятками шагов. Например, вместо
того чтобы задавать scrollTo, classes,
cancelIcon для каждого шага, достаточно определить их один
раз при создании тура.
Это также повышает консистентность поведения и внешнего вида всех шагов, снижая вероятность ошибок при добавлении новых шагов.
defaultStepOptions.useModalOverlay для модального затемнения
интерфейса.Грамотное применение глобальных опций делает туры более управляемыми, поддерживаемыми и легко масштабируемыми.