Shepherd.js — это библиотека для создания интерактивных пошаговых туров по веб-приложениям. Она позволяет привязать подсказки к элементам интерфейса и управлять последовательностью шагов, что особенно важно для мобильных приложений, где пространство экрана ограничено.
Ключевые возможности Shepherd.js:
attachTo.classes.show,
hide, complete, cancel).При работе с мобильными устройствами важно учитывать размеры экрана и адаптивность подсказок. В Shepherd.js это достигается через:
const tour = new Shepherd.Tour({
defaultStepOptions: {
scrollTo: { beh * avior: 'smooth', block: 'center' },
cancelIcon: { enabled: true },
canClickTarget: false,
classes: 'shepherd-theme-arrows mobile-tour',
},
useModalOverlay: true,
});
Пояснения ключевых параметров:
scrollTo: плавная прокрутка к элементу, учитывающая
центр экрана.cancelIcon: отображение крестика для закрытия
подсказки, особенно важно для маленьких экранов.canClickTarget: запрет на клики по элементу во время
шага, предотвращая случайные действия.classes: кастомные классы для адаптации стиля под
мобильные устройства.useModalOverlay: затемнение фона, чтобы фокус оставался
на подсказке.tour.addStep({
id: 'step-menu',
text: 'Это главное меню приложения.',
attachTo: {
element: '.menu-button',
on: 'bottom'
},
buttons: [
{
text: 'Далее',
action: tour.next
}
]
});
tour.addStep({
id: 'step-profile',
text: 'Здесь находится ваш профиль.',
attachTo: {
element: '.profile-icon',
on: 'left'
},
buttons: [
{
text: 'Назад',
action: tour.back
},
{
text: 'Готово',
action: tour.complete
}
]
});
Особенности для мобильных интерфейсов:
on) следует выбирать так, чтобы
подсказка не перекрывала основной контент.scrollTo: { block: 'center' }.Для корректного отображения на разных разрешениях можно использовать медиа-запросы в CSS или динамически менять позицию подсказки через Jav * aScript:
tour.addStep({
id: 'step-settings',
text: 'Настройки приложения.',
attachTo: {
element: '.settings-icon',
on: window.innerWidth < 600 ? 'top' : 'right'
},
buttons: [
{
text: 'Далее',
action: tour.next
}
]
});
На мобильных устройствах часто используется скрытая навигация или выпадающие панели. Shepherd.js позволяет привязывать подсказку к элементам, которые появляются динамически, с помощью отложенной инициализации шага:
document.querySelector('.menu-button').addEventListener('click', () => {
tour.addStep({
id: 'dynamic-step',
text: 'Эта подсказка появляется после открытия меню.',
attachTo: { element: '.menu-item', on: 'bottom' },
buttons: [{ text: 'Закрыть', action: tour.complete }]
});
tour.start();
});
Для удобства на маленьких экранах часто используют однотипные кнопки с минимальным текстом и крупными зонами клика:
buttons: [
{
text: 'Назад',
action: tour.back,
classes: 'btn-mobile-back'
},
{
text: 'Далее',
action: tour.next,
classes: 'btn-mobile-next'
}
]
Рекомендации:
Shepherd.js позволяет отслеживать действия пользователя на каждом шаге, что важно для мобильных приложений с ограниченным вниманием:
tour.on('complete', () => {
console.log('Тур завершён');
});
tour.on('cancel', () => {
console.log('Тур был прерван пользователем');
});
Можно также интегрировать события с аналитикой, чтобы фиксировать, какие шаги пользователи чаще всего пропускают, и оптимизировать мобильные туры.
useModalOverlay с осторожностью, так как
на слабых устройствах overlay может замедлять прокрутку.Shepherd.js легко интегрируется с React, Vue и Angular:
useEffect для инициализации
тура после рендеринга компонентов.mounted для привязки
шагов к DOM-элементам.ngAfterViewInit.Эта стратегия позволяет создавать мобильные туры, которые корректно реагируют на динамическую подгрузку элементов и изменение размера экрана.