Driver.js — это библиотека для создания интерактивных пошаговых
подсказок на веб-странице. Она позволяет выделять элементы интерфейса,
показывать подсказки с текстом, кнопками и направляющими стрелками,
обеспечивая пользователю наглядное обучение работе с приложением. В
основе работы Driver.js лежит создание последовательности шагов
(steps) и управление их отображением через методы экземпляра
Driver.
Создание экземпляра Driver.js выполняется через конструктор:
const driver = new Driver({
allowClose: false,
overlayClickNext: true,
animate: true,
opacity: 0.75,
padding: 10
});
Каждый шаг задаётся объектом с обязательным свойством
element и описанием popover:
driver.defineSteps([
{
element: '#menu',
popover: {
title: 'Главное меню',
description: 'Здесь находятся основные разделы приложения',
position: 'bottom'
}
},
{
element: '#profile',
popover: {
title: 'Профиль',
description: 'Управление настройками пользователя',
position: 'right'
}
}
]);
top, bottom, left,
right, auto.Экземпляр Driver предоставляет методы для управления последовательностью шагов:
driver.start() — запуск подсказки с первого шага.driver.next() — переход к следующему шагу.driver.prev() — возвращение к предыдущему шагу.driver.reset() — сброс состояния подсказки.driver.highlight(element) — подсветка элемента без
запуска полной последовательности.driver.stop() — завершение всех подсказок.Поповеры можно настраивать детально, задавая:
popover: {
title: 'Пример кнопки',
description: 'Описание действия кнопки',
buttons: [
{
text: 'Далее',
action: driver.next
},
{
text: 'Закрыть',
action: driver.stop
}
]
}
allowClose включен.Driver.js позволяет формировать шаги динамически, например, на основе состояния DOM или данных пользователя:
const steps = Array.from(document.querySelectorAll('.feature')).map((el, i) => ({
element: el,
popover: {
title: `Функция ${i + 1}`,
description: `Описание функции ${i + 1}`,
position: 'bottom'
}
}));
driver.defineSteps(steps);
driver.start();
Driver.js поддерживает события, которые позволяют управлять поведением подсказки:
driver.on('start', callback) — при запуске
подсказки.driver.on('next', callback) — при переходе к следующему
шагу.driver.on('stop', callback) — при завершении
последовательности.Пример использования:
driver.on('next', (step) => {
console.log(`Переход к шагу: ${step.popover.title}`);
});
overlayColor.padding и radius.const driver = new Driver({
overlayClickNext: true,
opacity: 0.8,
padding: 15
});
documentFragment для динамических шагов,
если необходимо подсвечивать множество элементов, чтобы уменьшить
количество перерисовок DOM.Driver.js легко интегрируется с React, Vue и Angular:
useEffect для запуска
подсказки после рендера компонента.mounted или watch для
динамического создания шагов.ngAfterViewInit для правильного получения
DOM-элементов.useEffect(() => {
const driver = new Driver();
driver.defineSteps(steps);
driver.start();
}, []);
Использование Driver.js обеспечивает контролируемую подсветку элементов, гибкую настройку последовательностей шагов и управление интерактивными подсказками, что делает его идеальным инструментом для обучения пользователей работе с веб-приложениями.