Метод show является ключевым инструментом управления
пошаговыми инструкциями в библиотеке Shepherd.js. Он позволяет
программно переключаться на определённый шаг тура, независимо от
текущего положения пользователя в последовательности шагов. Это особенно
полезно для динамических интерфейсов, где требуется управлять навигацией
по шагам не только через кнопки «Next» и «Back», но и через внешние
события или действия пользователя.
tour.show([stepId])
stepId (необязательный) — идентификатор шага,
к которому нужно перейти. Если параметр не указан, show
вызовет отображение текущего активного шага или первого шага, если тур
только начинается.Метод show выполняет следующие действия:
stepId, библиотека
ищет шаг с соответствующим идентификатором среди зарегистрированных
шагов тура. Если не найден, метод игнорирует вызов.beforeShowPromise,
attach, и show.currentStep).const tour = new Shepherd.Tour({
defaultStepOptions: {
cancelIcon: {
enabled: true
},
classes: 'shepherd-theme-arrows',
scrollTo: { beh * avior: 'smooth', block: 'center' }
}
});
tour.addStep({
id: 'step-1',
text: 'Это первый шаг тура',
attachTo: { element: '#element1', on: 'bottom' },
buttons: [
{ text: 'Далее', action: tour.next }
]
});
tour.addStep({
id: 'step-2',
text: 'Это второй шаг тура',
attachTo: { element: '#element2', on: 'top' },
buttons: [
{ text: 'Назад', action: tour.back },
{ text: 'Далее', action: tour.next }
]
});
tour.start();
// Переход к конкретному шагу по событию
document.querySelector('#goto-step-2').addEventListener('click', () => {
tour.show('step-2');
});
В этом примере метод show позволяет мгновенно перейти ко
второму шагу при нажатии на внешнюю кнопку, минуя первый шаг.
next и back,
show даёт полный контроль над порядком шагов, что полезно
для нелинейных туров.show будут
триггерены все события шага (show, hide,
complete, cancel), что позволяет встроить
сложную логику отображения подсказок.show, иначе шаг не
прикрепится.beforeShowPromise для выполнения асинхронных действий перед
отображением шага, например, загрузки данных или анимации
интерфейса.id. Это гарантирует корректную работу метода
show при переходе к конкретному шагу.show, а
не через последовательность кнопок, чтобы избежать дублирования
кода.show(stepId) можно использовать
tour.getById(stepId) для проверки наличия шага. Это
предотвращает ошибки при динамическом создании шагов.showtour.addStep({
id: 'step-async',
text: 'Загрузка данных...',
attachTo: { element: '#dynamic-element', on: 'right' },
beforeShowPromise: () => fetch('/api/data')
.then(response => response.json())
.then(data => {
document.querySelector('#dynamic-element').textContent = data.message;
})
});
tour.show('step-async');
Метод show гарантирует, что шаг отобразится только после
завершения beforeShowPromise, обеспечивая синхронизацию с
внешними процессами.
Метод show является мощным инструментом Shepherd.js для
гибкого управления пошаговыми турами. Он позволяет:
Использование show делает туры более интерактивными,
настраиваемыми и адаптивными к любым сценариям работы приложения.