Shepherd.js предоставляет мощный механизм для создания пошаговых интерактивных туров на веб-страницах. Ключевым элементом пользовательского интерфейса являются кнопки навигации, которые позволяют пользователю переходить между шагами, завершать тур или отменять его. Встроенные кнопки имеют базовый стиль, но библиотека полностью поддерживает кастомизацию через CSS и объектные параметры при инициализации шагов.
Shepherd.js использует несколько основных типов кнопок:
next – кнопка для перехода к
следующему шагу.back – кнопка для возврата к
предыдущему шагу.cancel – кнопка для отмены или
закрытия тура.complete – кнопка для завершения
тура.Каждая кнопка задается объектом с ключами text,
action и опционально classes. Пример
конфигурации шага с кнопками:
const step = tour.addStep({
title: 'Пример шага',
text: 'Текст шага здесь',
buttons: [
{
text: 'Назад',
action: tour.back,
classes: 'shepherd-button-back'
},
{
text: 'Далее',
action: tour.next,
classes: 'shepherd-button-next'
},
{
text: 'Закрыть',
action: tour.cancel,
classes: 'shepherd-button-cancel'
}
]
});
Shepherd.js поставляется с базовыми стилями, которые применяются через стандартные классы:
.shepherd-button – общий класс для всех кнопок..shepherd-button-primary – выделение основной кнопки
действия..shepherd-button-secondary – второстепенная
кнопка.Применение этих классов позволяет быстро создавать последовательности шагов с визуально различимыми кнопками без дополнительного CSS.
buttons: [
{
text: 'Далее',
action: tour.next,
classes: 'shepherd-button shepherd-button-primary'
},
{
text: 'Назад',
action: tour.back,
classes: 'shepherd-button shepherd-button-secondary'
}
]
Для тонкой настройки внешнего вида кнопок используется стандартная каскадная таблица стилей. Например, изменение цвета, размеров и состояния при наведении:
.shepherd-button-primary {
background-color: #007bff;
color: #fff;
border-radius: 5px;
padding: 8px 16px;
font-weight: bold;
border: none;
cursor: pointer;
}
.shepherd-button-primary:hover {
background-color: #0056b3;
}
.shepherd-button-secondary {
background-color: #6c757d;
color: #fff;
border-radius: 5px;
padding: 8px 16px;
font-weight: bold;
border: none;
cursor: pointer;
}
.shepherd-button-cancel {
background-color: transparent;
color: #dc3545;
border: 1px solid #dc3545;
border-radius: 5px;
padding: 8px 16px;
}
Такой подход обеспечивает согласованный дизайн с остальными элементами интерфейса и позволяет создавать уникальные кнопки для каждого проекта.
Кнопки можно изменять динамически через методы шагов или события тура. Например, добавление кнопки только на последнем шаге:
tour.on('show', function() {
const step = tour.getCurrentStep();
if (step.id === 'final-step') {
step.updateStepOptions({
buttons: [
{
text: 'Завершить',
action: tour.complete,
classes: 'shepherd-button shepherd-button-primary'
}
]
});
}
});
Это позволяет создавать более гибкие интерфейсы, где набор кнопок зависит от контекста шага.
CSS-анимации и эффекты hover/active можно комбинировать с кнопками Shepherd.js для улучшения пользовательского опыта:
.shepherd-button {
transition: all 0.3s ease;
}
.shepherd-button:hover {
transform: scale(1.05);
}
.shepherd-button:active {
transform: scale(0.95);
opacity: 0.9;
}
Такой подход делает интерфейс интерактивным и визуально привлекательным без изменения функциональной логики.
Shepherd.js легко интегрируется с популярными CSS-фреймворками,
такими как Bootstrap или Tailwind. Достаточно указать классы фреймворка
в опции classes кнопок:
buttons: [
{
text: 'Далее',
action: tour.next,
classes: 'btn btn-primary'
},
{
text: 'Назад',
action: tour.back,
classes: 'btn btn-secondary'
}
]
При этом остаются доступными все функции Shepherd.js: переходы шагов, события и динамическая настройка.
Сочетание объектной конфигурации кнопок и кастомного CSS позволяет:
Библиотека предоставляет полный контроль над кнопками, сохраняя при этом простоту использования и совместимость с современными веб-интерфейсами.