Driver.js — это мощная библиотека для создания интерактивных пошаговых инструкций по интерфейсу веб-приложений. Она предоставляет гибкие возможности настройки поведения шагов и визуального оформления. Глобальные параметры позволяют задавать настройки по умолчанию для всех шагов, что облегчает поддержку и уменьшает количество повторяющегося кода. Переопределение этих параметров важно для создания уникального пользовательского опыта и соответствия фирменному стилю.
В Driver.js глобальные настройки задаются через объект конфигурации при создании экземпляра:
const driver = new Driver({
animate: true,
opacity: 0.75,
padding: 10,
stageBackground: '#ffffff',
nextBtnText: 'Далее',
prevBtnText: 'Назад',
closeBtnText: 'Закрыть',
allowClose: true,
keyboardControl: true,
});
Ключевые параметры:
animate — включает или отключает анимацию при переходе
между шагами.opacity — задает уровень прозрачности затемнения фона
вокруг выделяемого элемента.padding — внутренний отступ вокруг элемента,
выделяемого рамкой.stageBackground — цвет фона всплывающей подсказки.nextBtnText, prevBtnText,
closeBtnText — подписи кнопок навигации.allowClose — разрешает закрытие подсказки кликом вне
элемента или кнопкой «Закрыть».keyboardControl — управление шагами через клавиши
стрелок и Escape.Эти настройки применяются ко всем шагам по умолчанию, если в конкретном шаге не задано локальное переопределение.
Каждый шаг может иметь собственные настройки, которые перекрывают глобальные:
driver.defineSteps([
{
element: '#menu',
popover: {
title: 'Меню',
description: 'Содержит основные разделы сайта',
position: 'bottom',
nextBtnText: 'Вперёд',
stageBackground: '#f0f0f0'
}
},
{
element: '#search',
popover: {
title: 'Поиск',
description: 'Введите ключевое слово для поиска',
position: 'top'
}
}
]);
Особенности локального переопределения:
popover, заменяют
глобальные настройки только для конкретного шага.stageBackground, padding), так и текстов
кнопок (nextBtnText).Driver.js позволяет менять глобальные параметры на
лету после создания экземпляра. Для этого используется метод
setOptions:
driver.setOptions({
opacity: 0.85,
animate: false,
stageBackground: '#222222'
});
После вызова setOptions новые значения применяются ко
всем шагам, где нет локальных переопределений. Это полезно для создания
адаптивных подсказок, например, при смене темы сайта.
Глобальные параметры могут быть функциями, что позволяет задавать их динамически:
const driver = new Driver({
padding: () => window.innerWidth < 768 ? 5 : 15,
stageBackground: () => {
return document.body.classList.contains('dark-mode') ? '#333' : '#fff';
}
});
Преимущества такого подхода:
opacity, padding,
stageBackground) отдельно от поведенческих
(animate, keyboardControl,
allowClose) — улучшает читаемость и понимание
конфигурации.Driver.js поддерживает иерархию параметров:
popover шага.setOptions.Это позволяет строить сложные интерактивные инструкции с единым стилем, сохраняя возможность индивидуальной настройки отдельных шагов.
const driver = new Driver({
animate: true,
opacity: 0.7,
padding: 10,
stageBackground: '#ffffff',
nextBtnText: 'Далее',
prevBtnText: 'Назад',
closeBtnText: 'Закрыть',
});
driver.defineSteps([
{
element: '#header',
popover: {
title: 'Заголовок',
description: 'Основная навигация сайта',
position: 'bottom',
}
},
{
element: '#profile',
popover: {
title: 'Профиль',
description: 'Настройки и информация о пользователе',
position: 'left',
nextBtnText: 'Следующий шаг',
stageBackground: '#e0f7fa'
}
}
]);
driver.start();
В этом примере глобальные параметры задают общую визуальную и функциональную основу, а второй шаг имеет локальное переопределение для фона и текста кнопки, что делает инструкцию более выразительной и удобной.
Переопределение глобальных параметров в Driver.js обеспечивает гибкость, консистентность интерфейса и возможность адаптации под различные условия использования, при этом сохраняя чистоту и читаемость кода.