Driver.js предоставляет возможность создавать интерактивные пошаговые гиды по интерфейсу веб-приложения. Одним из ключевых инструментов гибкой настройки является работа с шаблонами шагов. Шаблоны позволяют задавать структуру подсказок, повторно использовать оформление и логику отображения, упрощая поддержку и масштабирование руководств.
Каждый шаг в Driver.js описывается объектом с набором свойств. Основные из них:
element — CSS-селектор элемента, к которому будет привязан шаг.
popover — объект, определяющий содержимое всплывающей подсказки.
top, bottom, left,
right).onNext и onPrevious — функции обратного вызова при переходе между шагами.
stageBackground — цвет или прозрачность фона вокруг выделяемого элемента.
Для шаблона можно задавать набор таких шагов, чтобы затем повторно использовать их в разных сценариях.
const stepTemplate = {
element: '',
popover: {
title: '',
description: '',
position: 'bottom'
},
onNext: null,
onPrevious: null,
stageBackground: 'rgba(0,0,0,0.5)'
};
Часто возникает необходимость подставлять содержимое подсказок динамически, например, заголовок зависит от состояния приложения. Для этого можно использовать функции, возвращающие объект шага:
function createStep(elementSelector, titleText, descriptionText, position='bottom') {
return {
element: elementSelector,
popover: {
title: titleText,
description: descriptionText,
position: position
},
stageBackground: 'rgba(0,0,0,0.6)'
};
}
const steps = [
createStep('#button1', 'Кнопка отправки', 'Нажмите для отправки формы', 'top'),
createStep('#input1', 'Поле ввода', 'Введите имя пользователя', 'right')
];
Для упрощения повторного использования шагов можно создавать базовые шаблоны и наследовать их, изменяя только необходимые свойства:
const baseStep = {
stageBackground: 'rgba(0,0,0,0.4)',
popover: { position: 'bottom' }
};
const customStep = {
...baseStep,
element: '#menu',
popover: {
...baseStep.popover,
title: 'Меню',
description: 'Основная панель навигации'
}
};
Такой подход позволяет хранить единый набор настроек для всех шагов, минимизируя дублирование кода.
Для построения многошаговых гидов удобно использовать массивы объектов-шаблонов:
const tourSteps = [
{ element: '#nav', popover: { title: 'Навигация', description: 'Перемещайтесь между разделами', position: 'bottom' } },
{ element: '#profile', popover: { title: 'Профиль', description: 'Просмотр информации о пользователе', position: 'right' } }
];
const driver = new Driver();
driver.defineSteps(tourSteps);
driver.start();
Driver.js позволяет использовать кастомные HTML-шаблоны для поповеров, что расширяет возможности оформления:
const customPopoverTemplate = `
<div class="custom-popover">
<h3 class="custom-title">{{title}}</h3>
<p class="custom-description">{{description}}</p>
<button class="custom-next">Далее</button>
</div>
`;
const driver = new Driver({
className: 'custom-driver',
stageBackground: 'rgba(0,0,0,0.7)',
animate: true,
nextBtnText: 'Вперед',
prevBtnText: 'Назад',
allowClose: false
});
driver.defineSteps([
{ element: '#feature', popover: { title: 'Фича', description: 'Описание фичи', template: customPopoverTemplate } }
]);
driver.start();
Использование собственного шаблона позволяет полностью контролировать HTML, стили и логику кнопок, включая кастомные события.
Работа с шаблонами в Driver.js обеспечивает гибкость и упрощает создание сложных интерактивных гидов, позволяя быстро масштабировать руководство по интерфейсу без дублирования кода.