В библиотеке Shepherd.js метод on
используется для подписки на события конкретного тура
или шага. Этот метод позволяет отслеживать жизненный цикл шагов и тура,
реагировать на действия пользователя и выполнять кастомные функции в
нужный момент.
ontour.on(event, callback)
step.on(event, callback)
Параметры:
event — строка, определяющая событие, на которое
производится подписка. Shepherd поддерживает множество событий,
разделённых на два уровня:
start, complete,
cancel, show, hideshow, hide,
complete, cancel, active,
inactive, destroycallback — функция, которая будет вызвана при
наступлении события. Может принимать аргументы, в зависимости от события
(например, текущий шаг или объект тура).
Метод возвращает объект Shepherd, что позволяет использовать цепочку вызовов (chaining).
const tour = new Shepherd.Tour({
defaultStepOptions: {
scrollTo: true
}
});
// Подписка на событие начала тура
tour.on('start', () => {
console.log('Тур начат');
});
// Подписка на завершение тура
tour.on('complete', () => {
console.log('Тур завершён');
});
// Подписка на отмену тура
tour.on('cancel', () => {
console.log('Тур отменён пользователем');
});
tour.start();
В этом примере демонстрируется, как отслеживать жизненный цикл всего тура. Подписка на события позволяет вести аналитику или изменять состояние интерфейса при старте, завершении или отмене тура.
Каждый шаг Shepherd.js также поддерживает собственные события. Метод
on здесь особенно полезен для кастомизации поведения
отдельных элементов интерфейса.
const step = tour.addStep({
id: 'example-step',
text: 'Это пример шага',
attachTo: { element: '.my-element', on: 'bottom' }
});
// Подписка на показ шага
step.on('show', () => {
console.log('Шаг показан');
});
// Подписка на скрытие шага
step.on('hide', () => {
console.log('Шаг скрыт');
});
// Подписка на завершение шага
step.on('complete', () => {
console.log('Шаг выполнен');
});
tour.start();
Использование подписки на события шага позволяет выполнять действия только в контексте конкретного шага, например, подсветку элементов, запуск анимаций или проверку условий.
События тура:
| Событие | Описание |
|---|---|
start |
Тур начинается |
cancel |
Тур отменён пользователем |
complete |
Тур успешно завершён |
show |
Любой шаг тура показан |
hide |
Любой шаг тура скрыт |
События шага:
| Событие | Описание |
|---|---|
show |
Шаг показан |
hide |
Шаг скрыт |
complete |
Шаг выполнен |
cancel |
Шаг отменён |
active |
Шаг активен (фокус пользователя на шаге) |
inactive |
Шаг неактивен |
destroy |
Шаг удалён |
Эти события можно комбинировать для построения сложных сценариев взаимодействия.
Некоторые события передают параметры в callback. Например:
step.on('show', (event) => {
console.log('Показан шаг с id:', event.step.id);
});
Здесь event.step содержит объект шага, что позволяет
динамически получать свойства шага, изменять контент или стилевые
параметры.
onМетод on поддерживает цепочки вызовов, что удобно для
компактного объявления нескольких подписок:
tour
.on('start', () => console.log('Тур стартовал'))
.on('complete', () => console.log('Тур завершён'))
.on('cancel', () => console.log('Тур отменён'));
Это позволяет структурировать код более читаемо и избежать повторного обращения к объекту тура.
on для логирования действий
пользователя. Это удобно при аналитике и тестировании
интерактивных туров.off(event, callback) для удаления
слушателей, предотвращая утечки памяти при больших турах.show и её остановка при hide.Метод on является ключевым инструментом для создания
интерактивных и адаптивных туров с Shepherd.js,
позволяя точно контролировать реакцию интерфейса на действия
пользователя на уровне тура и отдельных шагов.