Для работы с Driver.js необходимо создать экземпляр класса
Driver. Конструктор позволяет задать глобальные настройки,
которые будут применяться ко всем шагам тура:
import Driver from 'driver.js';
import 'driver.js/dist/driver.min.css';
const driver = new Driver({
animate: true, // плавная анимация при переходе между шагами
opacity: 0.75, // затемнение фона вокруг выделенного элемента
padding: 10, // отступ вокруг элемента
allowClose: false, // запрет закрытия тура кликом на затемненную область
overlayClickNext: true // клик по оверлею ведет к следующему шагу
});
Ключевые свойства конструктора:
Экземпляр driver становится основным объектом управления
турами.
Каждый шаг тура описывается объектом с минимальными свойствами:
driver.defineSteps([
{
element: '#submit-button',
popover: {
title: 'Кнопка отправки',
description: 'Нажмите здесь, чтобы отправить форму.',
position: 'bottom'
}
},
{
element: '#username',
popover: {
title: 'Поле имени пользователя',
description: 'Введите ваш логин.',
position: 'right'
}
}
]);
Основные параметры шага:
top, bottom, left,
right, auto).Можно задавать дополнительные свойства для кастомизации: padding, className, onNext, onPrevious, onShow.
Для запуска тура используется метод start():
driver.start();
Опционально можно указать первый шаг для запуска:
driver.start(1); // запуск с шага с индексом 1 (второй шаг)
Особенности метода start():
Driver.js предоставляет методы для ручного управления навигацией:
driver.moveNext(); // перейти к следующему шагу
driver.movePrevious(); // перейти к предыдущему шагу
driver.reset(); // сбросить текущий тур, скрыть все подсветки
Методы moveNext и movePrevious учитывают
настройки колбеков на шагах:
{
onNext: function() { console.log('Следующий шаг'); },
onPrevious: function() { console.log('Предыдущий шаг'); }
}
reset() полностью очищает текущий тур и возвращает DOM к
исходному состоянию.
Для закрытия тура предусмотрен метод stop():
driver.stop();
Особенности stop():
stop() можно повторно вызвать
start() для нового показа тура.Дополнительно можно назначить callback при закрытии:
driver.defineSteps([
{
element: '#menu',
popover: { title: 'Меню', description: 'Главное меню сайта', position: 'bottom' },
onNext: function() { console.log('Шаг пройден'); },
onStop: function() { console.log('Тур завершен'); }
}
]);
Можно интегрировать Driver.js с событиями страницы:
window.addEventListener('load', () => {
driver.start(); // автоматический запуск после полной загрузки страницы
});
document.querySelector('#close-tour').addEventListener('click', () => {
driver.stop(); // остановка тура по кнопке
});
Такой подход позволяет комбинировать ручное управление и автоматические сценарии, обеспечивая гибкость показа инструкций.
Пропуск шагов на основе условий:
driver.defineSteps([
{ element: '#step1', popover: { title: 'Шаг 1', description: 'Описание 1', position: 'top' } },
{ element: '#step2', popover: { title: 'Шаг 2', description: 'Описание 2', position: 'right' }, onShow: () => {
if (!document.querySelector('#step2').offsetParent) {
driver.moveNext(); // пропуск шага, если элемент скрыт
}
}}
]);
driver.start();
Запуск нескольких туров последовательно:
const tour1 = new Driver({ animate: true });
const tour2 = new Driver({ animate: false });
tour1.defineSteps([...]);
tour2.defineSteps([...]);
tour1.start();
tour1.on('complete', () => tour2.start());
Driver можно переиспользовать для разных
туров на одной странице.start(), stop(),
moveNext(), movePrevious() обеспечивают полный
контроль над показом шагов.onNext, onPrevious,
onShow, onStop позволяют создавать
динамическую и интерактивную навигацию.