Объект StepOptions в Shepherd.js используется для точной
настройки каждого шага турa. Он является ключевым элементом управления
поведением, внешним видом и интерактивностью шага. Каждый шаг создается
через конструктор tour.addStep(options), где
options — это объект StepOptions.
idТип: string id —
уникальный идентификатор шага. Он используется для ссылок между шагами и
возможности динамического управления туром (например, переход к
конкретному шагу с помощью tour.show('stepId')).
title и textТип: string или
HTMLElement title задает заголовок шага, а
text — основной контент. text может быть как
строкой, так и DOM-элементом, что позволяет внедрять сложные компоненты,
списки, таблицы или интерактивные элементы внутри шага.
attachToТип: Object
{ element: string | HTMLElement, on: string } Позволяет
привязать шаг к конкретному элементу страницы. Параметр
element указывает CSS-селектор или DOM-узел, к которому
прикрепляется подсказка. Параметр on определяет позицию
относительно элемента: 'top', 'bottom',
'left', 'right'. Пример:
attachTo: {
element: '#submitButton',
on: 'bottom'
}
buttonsТип: Array<Object> Определяет
набор кнопок на шаге. Каждая кнопка задается объектом с параметрами:
text — текст на кнопкеaction — функция, вызываемая при кликеclasses — CSS-классы для стилизацииПример кнопки для перехода к следующему шагу:
buttons: [
{
text: 'Далее',
action: tour.next,
classes: 'shepherd-button-primary'
}
]
cancelIconТип: Object Настройки иконки закрытия
шага. Содержит свойства:
enabled — включение/отключение иконки (булево)label — текст для accessibility (screen reader)className — кастомные CSS-классыПример:
cancelIcon: {
enabled: true,
label: 'Закрыть',
className: 'custom-cancel-icon'
}
scrollToТип: boolean | Object Определяет
поведение прокрутки при открытии шага. Если true, Shepherd
автоматически прокручивает страницу, чтобы элемент был видим. Можно
передать объект с параметрами behavior и
block:
scrollTo: { beh * avior: 'smooth', block: 'center' }
highlightClassТип: string CSS-класс, применяемый к
элементу, к которому привязан шаг, для подсветки во время показа шага.
Позволяет визуально выделить активный элемент.
modalOverlayТип: boolean Если установлено в
true, создается затемненный фон вокруг шага, блокирующий
взаимодействие с остальной страницей. Полезно для привлечения внимания
пользователя к конкретному шагу.
whenТип: Object Позволяет подписаться на
события шага, такие как:
show — срабатывает при показе шагаhide — при скрытии шагаcomplete — когда шаг завершенcancel — при отмене шагаПример:
when: {
show: () => console.log('Шаг отображен'),
complete: () => console.log('Шаг завершен')
}
Содержимое шага можно изменять в процессе выполнения тура с помощью
методов updateStepOptions или изменения свойств
DOM-элементов, на которые ссылается text или
title. Это позволяет строить адаптивные подсказки,
реагирующие на действия пользователя.
Shepherd.js автоматически предоставляет методы навигации внутри шага через кнопки:
tour.next() — переход к следующему шагуtour.back() — возврат к предыдущему шагуtour.complete() — завершение тураtour.cancel() — прерывание тураКнопки можно комбинировать с кастомными функциями, чтобы реализовать сложную логику переходов.
Помимо attachTo.on, Shepherd поддерживает опцию
advanceOn, позволяющую автоматически переходить к
следующему шагу по событию, например:
advanceOn: { selector: '#nextBtn', event: 'click' }
Это позволяет создавать туры без необходимости нажимать стандартные кнопки Shepherd, интегрируя подсказки в существующий интерфейс.
Каждый элемент StepOptions поддерживает работу с
aria-атрибутами и доступность через title,
text и cancelIcon.label. Это обеспечивает
соответствие стандартам WCAG и корректное использование с экранными
читалками.
attachTo, highlightClass и
modalOverlay, чтобы пользователи точно понимали, какой
элемент активен.text и title во время тура
позволяет создавать интерактивные подсказки без перезапуска тура.when дает возможность
логировать действия пользователя или запускать дополнительные функции на
каждом шаге.StepOptions является фундаментальным инструментом
Shepherd.js, обеспечивая полное управление каждым шагом, его контентом,
визуальной позицией и поведением в туре. Правильное использование этих
параметров позволяет создавать сложные, адаптивные и доступные
интерфейсы обучения или гайды.