Driver.js — это легковесная библиотека для создания интерактивных руководств по интерфейсу. Помимо стандартных подсказок с попапами, она позволяет просто подсветить элементы страницы, оставляя пользовательский интерфейс чистым и минималистичным. Такой подход полезен для акцентирования внимания на важных частях интерфейса без навязчивых подсказок.
Подсветка без попапа достигается за счёт передачи пустого текста в
параметре description при создании шага. При этом элемент
подсвечивается, а попап не появляется.
Пример минимальной конфигурации шага:
const driver = new Driver();
driver.defineSteps([
{
element: '#menu-button',
description: '', // пустой description убирает попап
stageBackground: '#ffffff66', // полупрозрачный фон вокруг элемента
padding: 10
}
]);
driver.start();
В этом примере кнопка с id="menu-button" будет
подсвечена, а всплывающего окна с текстом не будет. Опция
stageBackground позволяет задать цвет затемнения остальной
части экрана, создавая эффект «фокуса» на элементе.
Параметры, влияющие на внешний вид подсветки:
padding — отступ вокруг элемента, увеличивающий область
подсветки.className — кастомный CSS-класс для стилизации
подсвечиваемого элемента.animation — включение анимации подсветки
(true по умолчанию).allowClose — возможность закрыть подсветку кликом вне
элемента (false при чистой подсветке без попапа часто
используется).Пример расширенной настройки:
driver.defineSteps([
{
element: '#profile-picture',
description: '',
padding: 15,
className: 'highlight-circle',
stageBackground: 'rgba(0,0,0,0.5)',
allowClose: true
}
]);
Класс highlight-circle может содержать CSS-анимацию или
изменённую форму подсветки:
.highlight-circle {
border-radius: 50%;
box-shadow: 0 0 0 5px rgba(255, 255, 0, 0.6);
transition: box-shadow 0.3s ease-in-out;
}
Подсветка без попапа особенно эффективна при пошаговой демонстрации интерфейса. Driver.js позволяет организовать последовательность шагов с управлением времени и логикой переходов.
Пример пошаговой подсветки нескольких элементов:
driver.defineSteps([
{ element: '#step1', description: '', padding: 8 },
{ element: '#step2', description: '', padding: 12 },
{ element: '#step3', description: '', padding: 10 }
]);
driver.start();
// Можно программно переходить к следующему шагу
driver.moveNext(); // переходит к следующему элементу
driver.movePrevious(); // возвращается к предыдущему
Каждый шаг может иметь уникальные настройки подсветки, форму и отступы, что позволяет гибко адаптировать визуальные акценты под дизайн приложения.
Driver.js предоставляет события, позволяющие контролировать поведение подсветки без попапа:
onHighlightStarted(element) — вызывается при активации
подсветки элемента.onHighlightEnded(element) — вызывается после завершения
подсветки текущего элемента.onReset() — срабатывает при закрытии всей
последовательности подсветки.Пример использования:
driver.on('highlightStarted', (element) => {
console.log('Подсветка активирована для:', element.id);
});
driver.on('highlightEnded', (element) => {
console.log('Подсветка завершена для:', element.id);
});
Эти события позволяют интегрировать подсветку с другими эффектами интерфейса, например, с анимациями или динамическими изменениями стилей.
padding
и кастомных классов позволяет создавать подсветку прямоугольной, круглой
или произвольной формы.Пример отключения анимации:
driver.defineSteps([
{ element: '#nav-bar', description: '', animation: false, padding: 5 }
]);
Это особенно полезно при подсветке множества элементов на мобильных устройствах или слабых ПК.