Driver.js предоставляет гибкие инструменты для изменения внешнего вида и структуры подсказок (popups) с помощью настроек опций и переопределения шаблонов. Каждый шаг (step) поддерживает собственный набор параметров, которые позволяют управлять содержимым, стилем и поведением подсказки.
popoverКаждый шаг в Driver.js может содержать объект popover, в
котором задаются:
top, bottom, left,
right, auto)Пример настройки:
const driver = new Driver();
driver.defineSteps([
{
element: '#button',
popover: {
title: 'Кнопка отправки',
description: 'Нажмите эту кнопку, чтобы отправить форму.',
position: 'bottom',
className: 'custom-popover'
}
}
]);
driver.start();
Ключевой момент: className позволяет
полностью переопределить стили попапа без вмешательства в исходный код
библиотеки.
Для более глубокой кастомизации можно использовать
собственный HTML-шаблон через template в
глобальных настройках Driver.js:
const driver = new Driver({
template: `
{{title}}
{{description}}
`
});
{{title}} и {{description}} — переменные,
которые автоматически заменяются на данные из шага.Это позволяет создавать совершенно уникальные попапы, управлять их HTML-разметкой и стилями без изменения исходной библиотеки.
С помощью методов Driver.js можно изменять содержимое попапа во время работы. Например:
driver.on('next', (step) => {
const popover = document.querySelector('.driver-popover');
if (popover) {
popover.querySelector('.driver-description').innerHTML = 'Новый текст подсказки';
}
});
next, previous,
start) позволяет адаптировать текст и элементы под
состояние приложения.Driver.js по умолчанию использует кнопки Next и
Close. Их можно заменить или расширить
через шаблон:
const driver = new Driver({
template: `
{{title}}
{{description}}
`
});
driver.moveNext(), driver.movePrevious(),
driver.reset())В description разрешается использовать HTML-теги:
driver.defineSteps([
{
element: '#menu',
popover: {
title: 'Главное меню',
description: `
- Пункт 1
- Пункт 2
- Справка
`,
position: 'right'
}
}
]);
Создание собственного CSS для className позволяет
менять:
width, height,
border-radius)background-color,
box-shadow)Пример:
.custom-popover {
background-color: #f0f4f8;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
font-family: 'Segoe UI', sans-serif;
}
.custom-popover .driver-header {
font-size: 18px;
font-weight: 600;
}
.custom-popover .driver-description {
font-size: 14px;
line-height: 1.5;
}
Для сложных интерфейсов часто комбинируют:
Пример:
driver.defineSteps([
{
element: '#profile',
popover: {
title: 'Профиль пользователя',
description: 'Здесь отображается информация о пользователе.
',
className: 'profile-popover',
position: 'bottom'
}
},
{
element: '#settings',
popover: {
title: 'Настройки',
description: 'Измените параметры приложения.
',
className: 'settings-popover',
position: 'left'
}
}
]);
driver.start();