Driver.js — библиотека для создания интерактивных пошаговых туров по интерфейсу. Одной из ключевых возможностей является адаптивное позиционирование подсказок относительно элементов страницы. Это позволяет сохранять корректное отображение подсказок даже при изменении размеров окна браузера или расположения элементов.
Определение целевого элемента Каждая подсказка
привязывается к конкретному DOM-элементу через селектор
element. Driver.js автоматически вычисляет позицию элемента
на странице и определяет возможное размещение подсказки.
const driver = new Driver();
driver.defineSteps([
{
element: '#submitButton',
popover: {
title: 'Отправка формы',
description: 'Нажмите эту кнопку, чтобы отправить данные',
position: 'top'
}
}
]);Позиции подсказок Библиотека поддерживает стандартные позиции:
top — над элементомbottom — под элементомleft — слеваright — справаauto — выбор оптимальной позиции в зависимости от
пространства на экранеПозиция auto особенно полезна при адаптивных
интерфейсах, так как автоматически предотвращает обрезание подсказки за
пределами окна.
Driver.js использует динамический расчет доступного пространства вокруг элемента:
getBoundingClientRect().offset) для дополнительной
отступной подстройки.Если выбранная позиция недоступна, Driver.js автоматически переключается на альтернативную позицию.
Каждый шаг можно дополнительно настраивать через padding
и offset.
driver.defineSteps([
{
element: '#menu',
popover: {
title: 'Меню',
description: 'Основная навигация сайта',
position: 'auto',
padding: 10,
offset: 5
}
}
]);
Driver.js автоматически отслеживает событие resize окна
браузера и пересчитывает позиции всех активных подсказок. Это
предотвращает их наложение на элементы интерфейса и обеспечивает
корректное отображение на мобильных устройствах и
планшетах.
Для ручного пересчета можно использовать метод
reposition():
window.addEventListener('resize', () => {
driver.reposition();
});
Подсказки Driver.js остаются привязанными к целевым элементам при прокрутке страницы благодаря динамическому вычислению координат. Если элемент выходит за пределы видимой области, подсказка может автоматически смещаться или оставаться фиксированной в пределах окна.
Дополнительно можно использовать опцию
scrollIntoViewOptions для точного управления
прокруткой:
driver.defineSteps([
{
element: '#footer',
popover: {
title: 'Футер сайта',
description: 'Ссылки на контакты и социальные сети',
position: 'bottom'
},
scrollIntoViewOptions: { beh * avior: 'smooth', block: 'center' }
}
]);
Несколько подсказок с auto При
последовательном отображении нескольких подсказок библиотека
автоматически подбирает оптимальные позиции для каждого шага.
Адаптация под мобильные экраны Подсказки
подстраиваются под узкие экраны, меняя позицию с горизонтальной на
вертикальную (top или bottom) для удобства
чтения.
Сложные интерфейсы с плавающими элементами Для
элементов с динамическим позиционированием (position: fixed
или sticky) Driver.js корректно вычисляет координаты и
смещения, предотвращая наложение подсказок на другие блоки.
position: auto для шагов в
адаптивных интерфейсах.padding, чтобы подсказка не прилипала к
краям окна.reposition() после их изменения.Адаптивное позиционирование в Driver.js обеспечивает гибкость отображения подсказок в любых условиях интерфейса, позволяя создавать качественные пошаговые туры для десктопных и мобильных приложений.