Shepherd.js — это мощная библиотека для создания интерактивных туров по веб-приложению. Управление длиной и количеством шагов играет ключевую роль в удобстве и восприятии пользователя, особенно при сложных интерфейсах.
Шаги (steps) в Shepherd.js задаются при инициализации тура через массив объектов конфигурации. Каждый шаг описывает элемент интерфейса, который будет выделен, текстовое содержание, положение подсказки и кнопки управления. Пример базовой структуры шага:
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
}
]
});
Каждый новый шаг добавляется через addStep, что
формирует общую последовательность тура.
Количество шагов напрямую влияет на восприятие пользователя. Избыточное количество шагов может перегрузить интерфейс и снизить эффективность обучения, а недостаточное — не позволит охватить все функциональные элементы.
Для оптимизации тура важно:
Пример условного шага:
if (document.querySelector('#advanced-settings')) {
tour.addStep({
id: 'advanced',
text: 'Расширенные настройки доступны здесь.',
attachTo: { element: '#advanced-settings', on: 'right' },
buttons: [{ text: 'Далее', action: tour.next }]
});
}
Под «длиной шага» подразумевается объем информации, который
пользователь получает на каждом этапе. В Shepherd.js текст шага задается
через свойство text, которое может быть строкой или
функцией, возвращающей HTML-контент.
Рекомендации по длине шага:
tour.addStep({
id: 'dynamic-step',
text: () => `Вы находитесь на странице ${document.title}.`,
attachTo: { element: '#main-content', on: 'top' },
buttons: [{ text: 'Далее', action: tour.next }]
});
Для длинных туров важно предоставить пользователю удобные средства навигации:
Пример добавления кнопок управления:
tour.addStep({
id: 'controls',
text: 'Используйте кнопки для перемещения по туру.',
attachTo: { element: '#controls', on: 'bottom' },
buttons: [
{ text: 'Назад', action: tour.back },
{ text: 'Далее', action: tour.next },
{ text: 'Закрыть', action: tour.complete }
]
});
Shepherd.js позволяет создавать туры, где количество шагов изменяется в зависимости от действий пользователя. Это особенно полезно для сложных приложений с разветвленной логикой.
removeStep(id)
позволяет убрать шаг, если он больше не нужен.addStep
может быть вызван в любой момент, даже после начала тура, что
обеспечивает гибкость в управлении длиной тура.tour.removeStep('intro');
tour.addStep({
id: 'new-intro',
text: 'Новый вступительный шаг.',
attachTo: { element: '#new-header', on: 'bottom' }
});
Эффективное сочетание количества шагов и длины текста повышает усвояемость информации, улучшает вовлеченность и снижает вероятность того, что пользователь покинет тур досрочно.