Для начала необходимо подключить библиотеку Driver.js в проект. Это можно сделать через менеджер пакетов npm или с помощью CDN.
Через npm:
npm install driver.js
После установки подключение в Jav * aScript:
import Driver from 'driver.js';
import 'driver.js/dist/driver.min.css';
Через CDN:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/driver.js/dist/driver.min.css">
<script src="https://cdn.jsdelivr.net/npm/driver.js/dist/driver.min.js"></script>
Подключение CSS обязательно, так как без него подсветка элементов и всплывающие подсказки работать не будут.
Для работы с подсказками создаётся объект Driver:
const driver = new Driver({
allowClose: true, // Возможность закрыть подсказку кликом по фону
overlayClickNext: false, // Продвижение к следующему шагу при клике на фон
doneBtnText: 'Готово', // Текст кнопки завершения тура
nextBtnText: 'Далее', // Текст кнопки следующего шага
prevBtnText: 'Назад', // Текст кнопки предыдущего шага
});
Параметры можно настраивать по необходимости. Ключевые настройки:
Каждый шаг задаётся объектом с ключевыми свойствами:
driver.defineSteps([
{
element: '#header', // CSS-селектор элемента для подсветки
popover: {
title: 'Шапка сайта', // Заголовок всплывающей подсказки
description: 'Здесь находится логотип и меню навигации.',
position: 'bottom' // Позиция подсказки относительно элемента
}
},
{
element: '#sidebar',
popover: {
title: 'Боковое меню',
description: 'Содержит ссылки на основные разделы.',
position: 'right'
}
},
{
element: '#main-content',
popover: {
title: 'Основная область',
description: 'Здесь отображается основной контент страницы.',
position: 'top'
}
}
]);
Основные свойства шага:
element — обязательное поле, CSS-селектор или DOM-элемент.
popover — объект с информацией о подсказке:
top, bottom, left,
right, center, auto.onNext, onPrevious, onShow, onHide — функции-обработчики событий шага.
Запуск тура осуществляется методом start():
driver.start();
Можно также начать с определённого шага, указав его индекс:
driver.start(1); // Запускает тур со второго шага (индексация с нуля)
Управление туром во время работы:
Driver.js позволяет гибко настраивать внешний вид:
Пример:
const driver = new Driver({
opacity: 0.7,
padding: 10,
borderRadius: 8,
animate: true
});
Если элемент появляется на странице после загрузки (например, через AJAX), необходимо убедиться, что он доступен перед определением шага:
const interval = setInterval(() => {
const element = document.querySelector('#dynamic-button');
if(element){
driver.defineSteps([
{
element: '#dynamic-button',
popover: {
title: 'Динамическая кнопка',
description: 'Появляется после загрузки данных.',
position: 'bottom'
}
}
]);
driver.start();
clearInterval(interval);
}
}, 500);
Driver.js предоставляет события, которые можно использовать для логирования или управления интерфейсом:
driver.on('start', () => console.log('Тур начат'));
driver.on('complete', () => console.log('Тур завершен'));
driver.on('reset', () => console.log('Тур сброшен'));
driver.on('next', step => console.log('Следующий шаг:', step));
driver.on('previous', step => console.log('Предыдущий шаг:', step));
driver.on('highlighted', step => console.log('Подсвечен элемент:', step.element));
popover.description.Эта последовательность шагов и настроек позволяет реализовать первый тур по странице, эффективно знакомящий пользователя с ключевыми элементами интерфейса, без перегрузки и с полной интерактивностью.