Driver.js предоставляет гибкие возможности для настройки внешнего вида и содержимого пошаговых руководств. Основная цель кастомизации — сделать подсказки максимально информативными, визуально привлекательными и удобными для пользователя.
Каждый шаг (step) в Driver.js может содержать следующие
ключевые параметры текста:
title — заголовок подсказки.
Отображается в верхней части тултипа.description — основной текст,
поясняющий действие или элемент интерфейса. Поддерживает HTML-разметку,
что позволяет использовать <strong>,
<em>, <a> и другие теги для
выделения ключевых моментов.popoverClass — позволяет добавить
кастомный CSS-класс к подсказке, чтобы применять собственные стили.Пример:
const driver = new Driver({
steps: [
{
element: '#menu-button',
popoverClass: 'custom-popover',
title: 'Меню навигации',
description: 'Нажмите сюда, чтобы открыть главное меню. <strong>Важно:</strong> используйте его для быстрого доступа к разделам.'
}
]
});
driver.start();
Driver.js позволяет полностью управлять HTML-содержимым тултипа через
параметр description. Это открывает возможности для:
Пример:
{
element: '#profile',
title: 'Профиль пользователя',
description: `
<p>Здесь отображается информация о пользователе.</p>
<ul>
<li>Имя и фамилия</li>
<li>Аватар</li>
<li>Настройки аккаунта</li>
</ul>
<a href="/settings">Перейти в настройки</a>
`
}
Driver.js позволяет управлять кнопками навигации внутри подсказки
через объект buttons и встроенные методы. По умолчанию
доступны кнопки «Next», «Previous», «Close», но можно создавать
собственные:
const driver = new Driver({
steps: [
{
element: '#submit-button',
title: 'Отправка формы',
description: 'Нажмите здесь для отправки данных.',
buttons: [
{
text: 'Пропустить',
action: driver.next
},
{
text: 'Закрыть',
action: driver.reset
}
]
}
]
});
Каждая кнопка может содержать:
text — текст кнопкиaction — функция, выполняемая при кликеclassName — CSS-класс для стилизации кнопкиDriver.js позволяет задавать расположение подсказки относительно
целевого элемента через параметр position. Поддерживаются
значения:
'top''bottom''left''right''centered' — для всплывающих окон без привязки к
элементуТакже можно использовать padding и offset
для точной подстройки позиции:
{
element: '#search',
title: 'Поле поиска',
description: 'Введите текст для поиска товаров.',
position: 'bottom',
padding: 10,
offset: 5
}
Driver.js позволяет изменять содержимое подсказок на лету через
методы setStep, updateStep и обработчики
событий:
driver.defineSteps([
{
element: '#cart',
title: 'Корзина',
description: 'Текущие товары отображаются здесь.'
}
]);
driver.start();
driver.on('beforeStep', (step) => {
if(step.element === '#cart') {
step.description = 'Корзина обновлена. Сейчас в ней ' + getCartItemCount() + ' товаров.';
}
});
Для глубокой кастомизации можно использовать CSS и кастомные классы для создания уникальных стилей:
Пример CSS:
.custom-popover {
background-color: #2a2a2a;
color: #fff;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.custom-popover .driver-arrow {
border-color: #2a2a2a;
}
Можно вставлять иконки или SVG прямо в описание подсказки или заголовок, что позволяет визуально выделять важные действия:
{
element: '#notifications',
title: '<img src="/icons/bell.svg" alt="Уведомления"> Уведомления',
description: 'Все новые события отображаются здесь.'
}
Текстовые элементы можно хранить в объекте локализации и динамически подставлять при инициализации Driver.js:
const translations = {
ru: {
title: 'Поиск',
description: 'Введите запрос для поиска.'
},
en: {
title: 'Search',
description: 'Enter query to search.'
}
};
const driver = new Driver({
steps: [
{
element: '#search',
title: translations.ru.title,
description: translations.ru.description
}
]
});
Эти возможности делают Driver.js мощным инструментом для создания интерактивных, визуально привлекательных и гибко настраиваемых руководств по интерфейсу.