В Driver.js шаги являются основным элементом создания интерактивных руководств. Каждый шаг описывает, какой элемент интерфейса подсвечивается, какое сообщение отображается и какие действия могут быть выполнены пользователем. Структура шага представляет собой объект с набором ключевых свойств, которые управляют поведением и внешним видом подсветки.
element Указывает на DOM-элемент, который будет подсвечен. Значение может быть передано в виде CSS-селектора строки или напрямую как объект DOM.
element: '#submitButton'
Если элемент не найден на странице, шаг будет пропущен, что позволяет строить гибкие сценарии.
popover Объект, описывающий всплывающее окно с информацией. Внутри него можно задать:
top, bottom,
left, right, auto).popover: {
title: 'Кнопка отправки',
description: 'Нажмите здесь, чтобы отправить форму',
position: 'bottom'
}onNext, onPrevious, onBeforeShow, onAfterShow Колбэк-функции, которые выполняются при переходе между шагами или перед показом/после показа шага. Позволяют динамически изменять контент, управлять состоянием элементов или запускать сторонние функции.
onNext: function() {
console.log('Пользователь перешёл к следующему шагу');
}padding Отступ вокруг подсвечиваемого элемента. Позволяет визуально отделить элемент от фона и сделать подсветку более заметной.
padding: 10animation Определяет анимацию появления
подсветки. Возможные значения: true или false.
Включение анимации делает переходы более плавными.
clickThrough Позволяет пользователю
взаимодействовать с элементом, находящимся под подсветкой. Если значение
true, клики на элемент будут проходить сквозь
подсветку.
highlightPadding Отдельная настройка от
padding, задающая пространство исключительно для подсветки
без влияния на положение всплывающего окна.
isFixed Если установлено в true,
всплывающее окно фиксируется на экране и не перемещается при
прокрутке.
overlayOpacity Прозрачность затемнённого фона вокруг подсвечиваемого элемента. Значения от 0 до 1.
const step = {
element: '#menuItem1',
popover: {
title: 'Меню',
description: 'Здесь можно выбрать различные разделы сайта',
position: 'right'
},
padding: 15,
animation: true,
clickThrough: false,
onNext: function() {
console.log('Следующий шаг активирован');
},
onBeforeShow: function() {
console.log('Шаг готов к отображению');
}
};
В этом примере элемент меню подсвечен, вокруг него добавлен отступ, всплывающее окно отображается справа и сопровождается анимацией. Колбэки обеспечивают обработку событий перехода между шагами.
Driver.js позволяет создавать шаги не статически, а динамически, на основе состояния интерфейса. Например, можно проверять наличие элемента перед добавлением шага:
const menuItem = document.querySelector('#menuItem2');
if(menuItem) {
driver.defineSteps([{
element: menuItem,
popover: {
title: 'Второе меню',
description: 'Этот пункт доступен только авторизованным пользователям',
position: 'bottom'
}
}]);
}
Шаги могут ссылаться друг на друга косвенно через колбэки или состояния приложения. Например, можно при завершении текущего шага изменять содержимое следующего шага, добавлять новые элементы в подсветку или изменять порядок шагов.
onAfterShow: function() {
driver.defineSteps([{
element: '#nextFeature',
popover: {
title: 'Новая функция',
description: 'Теперь эта кнопка активна',
position: 'top'
}
}]);
}
Определение шага является фундаментальным моментом работы с Driver.js, обеспечивая точный контроль над визуальной подсветкой, содержанием всплывающих подсказок и взаимодействием с элементами интерфейса.