Driver.js — это библиотека для создания интерактивных туров по веб-приложению. Одной из важных функций, повышающих удобство восприятия таких туров, является индикатор прогресса, который показывает пользователю, сколько шагов осталось пройти, а сколько уже завершено.
Индикатор прогресса в Driver.js активируется через опцию
showProgress. Это логическое значение, которое можно
указать при создании экземпляра Driver:
const driver = new Driver({
showProgress: true
});
При включении этой опции в правом верхнем углу подсветки элемента
автоматически появляется полоса прогресса и текстовая
метка вида Шаг 2 из 5. Это облегчает восприятие
последовательности шагов и мотивирует пользователей проходить тур
полностью.
Driver.js позволяет кастомизировать текст индикатора с помощью
функции onHighlightStarted или через глобальные параметры
локализации. Например:
const driver = new Driver({
showProgress: true,
steps: [
{
element: '#button1',
popover: {
title: 'Кнопка 1',
description: 'Описание кнопки'
}
},
{
element: '#input1',
popover: {
title: 'Поле ввода',
description: 'Введите данные'
}
}
],
onHighlightStarted: function(step) {
const progressText = `Вы на шаге ${step.index + 1} из ${this.steps.length}`;
document.querySelector('.driver-progress-text').innerText = progressText;
}
});
В этом примере мы вручную обновляем текст прогресса при каждом выделении нового элемента, что позволяет создавать кастомные форматы, включая перевод на другой язык или добавление специальных символов.
Driver.js использует CSS для отображения прогресса. Стандартный класс
.driver-progress можно изменять для кастомного дизайна:
.driver-progress {
background-color: #e0e0e0;
border-radius: 8px;
overflow: hidden;
height: 6px;
margin-top: 8px;
}
.driver-progress-bar {
background-color: #4caf50;
height: 100%;
transition: width 0.3s ease;
}
.driver-progress — контейнер для всей полосы..driver-progress-bar — заполняемая часть, отражающая
текущий прогресс.Благодаря плавной анимации transition визуальное
обновление шага становится более динамичным.
Для сложных сценариев возможна динамическая подгрузка шагов и управление прогрессом в реальном времени. Например, шаги могут добавляться по мере действий пользователя:
driver.defineSteps([
{
element: '#step1',
popover: { title: 'Шаг 1', description: 'Начало процесса' }
}
]);
driver.start();
// Позже добавляем новый шаг
driver.steps.push({
element: '#step2',
popover: { title: 'Шаг 2', description: 'Продолжение' }
});
driver.refresh(); // обновляем внутреннее состояние
После вызова refresh() индикатор прогресса автоматически
учитывает новый шаг, корректно отображая текущую позицию
пользователя.
Помимо встроенной полосы, Driver.js позволяет полностью заменять индикатор на собственный элемент, передавая кастомный контейнер через popover:
popover: {
title: 'Пример',
description: 'Индикатор прогресса можно кастомизировать',
showProgress: false,
customProgressContainer: '#myProgressContainer'
}
Это дает возможность интегрировать индикатор в собственный интерфейс, а не полагаться на стандартный вид.
Индикатор прогресса в Driver.js сочетает в себе простоту настройки и гибкость кастомизации, что позволяет создавать как стандартные, так и полностью интегрированные с дизайном приложения элементы визуальной обратной связи.