В библиотеке Driver.js управление видимостью элементов, подсветкой и оверлеями тесно связано с корректной настройкой z-index. z-index определяет порядок наложения элементов на странице и напрямую влияет на то, какой элемент будет находиться поверх других в процессе пошагового руководства. Неправильное управление этим свойством может привести к тому, что подсветка не видна, оверлей перекрывает контент или шаги не отображаются корректно.
Driver.js использует несколько ключевых слоев:
Overlay – затемнённая область вокруг подсвечиваемого элемента.
Highlight – рамка или эффект подсветки вокруг целевого элемента.
Tooltip / Popover – всплывающие подсказки и инструкции.
Ключевой момент: если целевой элемент сам имеет
высокий z-index, подсветка может оказаться скрытой. В
таких случаях требуется либо изменить z-index целевого
элемента, либо воспользоваться опцией zIndex в конфигурации
Driver.js.
Driver.js позволяет задать z-index на уровне всей библиотеки и для отдельных шагов:
const driver = new Driver({
opacity: 0.75,
padding: 10,
allowClose: false,
zIndex: 2000 // общий z-index для всех слоев
});
zIndex влияет на overlay, highlight и tooltip
одновременно.Пример настройки для отдельного шага:
driver.defineSteps([
{
element: '#button1',
popover: {
title: 'Кнопка 1',
description: 'Это важная кнопка',
position: 'bottom',
},
zIndex: 3000 // только для этого шага
}
]);
На практике часто встречается ситуация, когда элементы страницы имеют собственный z-index, превышающий стандартные значения Driver.js. Для решения этой проблемы существуют следующие подходы:
Повышение z-index через конфигурацию
zIndex при создании Driver
или для конкретного шага.Использование CSS для принудительной подсветки
.driver-highlight {
z-index: 5000 !important;
}Обновление DOM-структуры
Контроль родительских элементов
position: relative и высоким
z-index может ограничивать видимость highlight.allowClickThrough для overlay.Driver.js позволяет изменять z-index на лету, что полезно для адаптивных интерфейсов или интерактивных приложений:
driver.on('next', step => {
if(step.element.id === 'modalButton') {
driver.updateStep({
zIndex: 4000
});
}
});
next срабатывает при переходе к следующему
шагу.updateStep позволяет изменять настройки текущего
шага без перезапуска всей библиотеки.position обязательно для элементов
с z-index: relative, absolute,
fixed или sticky. Без него
z-index не будет работать.zIndex выше модального слоя, иначе подсветка и
tooltip будут скрыты.zIndex = 1000zIndex = overlay + 1zIndex = highlight + 1Если на странице есть элементы с z-index > 2000, значения всех слоев Driver.js необходимо увеличивать пропорционально. Это гарантирует корректное отображение всех шагов и предотвращает конфликт с другими компонентами интерфейса.
Таким образом, правильная работа с z-index в Driver.js обеспечивает видимость подсветки, правильное расположение оверлеев и всплывающих подсказок, а также корректное взаимодействие с элементами интерфейса без нарушения пользовательского опыта.