В Shepherd.js управление последовательностью шагов
интерактивного тура осуществляется через объект Tour,
который предоставляет методы для добавления, изменения и удаления шагов.
Одним из ключевых методов для управления структурой тура является
removeStep, позволяющий динамически
удалять шаги по их идентификатору.
tour.removeStep(stepId);
stepId — строка, представляющая
уникальный идентификатор шага, который нужно удалить.Метод removeStep ищет шаг по его
id, который задаётся при создании шага
через tour.addStep({ id: 'example' }). После вызова
метода:
const tour = new Shepherd.Tour({
defaultStepOptions: {
classes: 'shepherd-theme-arrows',
scrollTo: true
}
});
tour.addStep({
id: 'intro',
text: 'Добро пожаловать в интерактивный тур!',
attachTo: { element: '.header', on: 'bottom' },
buttons: [
{ text: 'Далее', action: tour.next }
]
});
tour.addStep({
id: 'feature',
text: 'Здесь показана ключевая функциональность.',
attachTo: { element: '.feature', on: 'top' },
buttons: [
{ text: 'Назад', action: tour.back },
{ text: 'Далее', action: tour.next }
]
});
// Удаление шага с id 'feature'
tour.removeStep('feature');
tour.start();
В этом примере шаг с id: 'feature' удаляется, и при
запуске тура пользователь не увидит этого шага.
id.next и back ведут к существующим шагам.Чтобы очистить тур полностью, можно использовать комбинацию
getSteps() и
removeStep():
tour.getSteps().forEach(step => tour.removeStep(step.id));
Это гарантирует удаление всех шагов независимо от их количества и порядка.
id — шаг не удаляется, если
указанный идентификатор не существует.if (tour.getById('feature')) {
tour.removeStep('feature');
}
Метод removeStep обеспечивает гибкость
и динамичность при работе с турами, позволяя адаптировать пошаговое
руководство под состояние интерфейса или действия пользователя без
необходимости перестраивать весь тур.