В Shepherd.js каждый шаг тура представляет собой
объект с набором параметров, которые определяют его поведение,
позиционирование, контент и события. Одним из ключевых параметров
является id — уникальный идентификатор
шага. Этот идентификатор служит основным средством обращения к шагу
после его создания и обеспечивает возможность точного управления турами,
включая динамическое изменение шагов, их активацию или удаление.
idid используется для:
Уникальной идентификации шага Каждый шаг должен
иметь уникальный id в пределах одного тура. Это необходимо
для того, чтобы API Shepherd.js мог точно ссылаться на конкретный шаг,
особенно когда тур содержит десятки шагов.
Навигации между шагами Методы тура, такие как
next(), back() или show(), могут
оперировать по id, позволяя показывать или переключаться на
нужный шаг без жесткой привязки к порядковому номеру.
Динамического управления шагами Позволяет
добавлять, удалять или модифицировать шаги после инициализации тура,
используя методы getById(id) и
remove(id).
При создании шага в Shepherd.js идентификатор задается через свойство
id в объекте конфигурации шага:
const tour = new Shepherd.Tour({
defaultStepOptions: {
cancelIcon: {
enabled: true
},
scrollTo: { beh * avior: 'smooth', block: 'center' }
}
});
tour.addStep({
id: 'intro-step', // уникальный идентификатор
text: 'Это первый шаг тура',
attachTo: {
element: '#start-button',
on: 'bottom'
},
buttons: [
{
text: 'Далее',
action: tour.next
}
]
});
В этом примере id равен 'intro-step'. Этот
идентификатор позволяет ссылаться на шаг напрямую через API:
const step = tour.getById('intro-step');
step.show();
id в рамках одного тура. Использование одинаковых
идентификаторов приведет к ошибкам при вызове методов, работающих с
конкретным шагом.'form-step',
'confirmation-step'.'signup-step-1', 'signup-step-2'.Shepherd.js предоставляет метод
getById(id), возвращающий объект шага.
Примеры операций:
// Показать шаг по идентификатору
tour.getById('intro-step').show();
// Скрыть шаг
tour.getById('intro-step').hide();
// Удалить шаг из тура
tour.removeStep('intro-step');
Использование id вместо порядкового индекса шагов делает
код более стабильным, особенно при динамическом добавлении или удалении
шагов.
Многие события тура можно связывать с конкретным шагом через его
id. Например, можно отслеживать показ определенного
шага:
tour.on('show', (event) => {
if (event.step.id === 'intro-step') {
console.log('Показан первый шаг');
}
});
Также id используется при подписке на пользовательские
действия на конкретных шагах, что особенно важно для сложных
интерактивных туров.
Хотя шаги в Shepherd.js обычно следуют порядку добавления,
id позволяет обходить этот порядок:
// Перейти сразу к шагу с конкретным идентификатором
tour.show('confirmation-step');
Это особенно полезно, когда нужно создать условные сценарии, например показывать определенные шаги в зависимости от выбора пользователя.
id для каждого шага, даже если тур
небольшой.id при программном управлении шагами и
подписке на события.Идентификатор шага является центральным элементом управления турами в Shepherd.js, обеспечивая гибкость, надежность и удобство при работе с динамическими сценариями пользовательского интерфейса.