В библиотеке Driver.js управление положением
подсказки относительно целевого элемента осуществляется через параметр
placement. Он определяет, где появится подсказка по
отношению к выбранному элементу. Корректное использование этого
параметра позволяет создавать интуитивно понятные и визуально аккуратные
гиды по интерфейсу.
Синтаксис:
const driver = new Driver();
driver.defineSteps([
{
element: '#target-element',
popover: {
title: 'Заголовок',
description: 'Описание элемента',
position: 'top'
}
}
]);
driver.start();
Здесь ключевой момент — свойство position в объекте
popover.
Driver.js поддерживает следующие позиции подсказки:
Каждое значение влияет не только на позицию, но и на направление стрелки, указывающей на целевой элемент.
Если целевой элемент находится близко к краю окна, указанный
position может вызвать обрезку подсказки. Для таких случаев
используется опция onNext или padding для
автоматического смещения:
driver.defineSteps([
{
element: '#button',
popover: {
title: 'Кнопка отправки',
description: 'Эта кнопка отправляет форму',
position: 'top'
},
onNext: function() {
console.log('Переходим к следующему шагу');
},
padding: 10 // минимальное расстояние от края окна
}
]);
Свойство padding гарантирует, что подсказка не налезет
на границы окна.
Для более точного контроля над расположением подсказки используется
свойство offset в комбинации с CSS-классами. Оно позволяет
смещать поповер по горизонтали и вертикали:
driver.defineSteps([
{
element: '#menu',
popover: {
title: 'Меню',
description: 'Основное меню навигации',
position: 'right',
offset: 20 // смещение вправо на 20px
}
}
]);
Особенности:
offset влияет только на позицию поповера, а стрелка
автоматически корректируется.Driver.js автоматически учитывает размеры окна и видимость элемента. Если заданное выравнивание приводит к частичному выходу подсказки за границы, библиотека пытается подобрать альтернативное положение.
driver.defineSteps([
{
element: '#input-field',
popover: {
title: 'Поле ввода',
description: 'Введите данные здесь',
position: 'bottom'
}
}
]);
driver.start();
В случае недостатка места снизу, подсказка может автоматически
переместиться вверх. Для более жесткого контроля можно использовать
свойство onHighlightStarted, чтобы проверять координаты и
вручную изменять position.
position так, чтобы подсказка не заслоняла важные части
интерфейса.offset
помогает корректировать визуальные ошибки, особенно при фиксированных
или анимированных элементах.top-left и
right-bottom особенно полезны для сложных макетов с
ограниченным пространством.driver.defineSteps([
{
element: '#profile-avatar',
popover: {
title: 'Аватар пользователя',
description: 'Здесь отображается ваша фотография',
position: 'left-top',
offset: 15
},
padding: 10
}
]);
driver.start();
В этом примере подсказка появляется слева и немного выше элемента, с отступом от границ окна, что обеспечивает аккуратное отображение на любых разрешениях.
Использование правильного выравнивания в Driver.js обеспечивает профессиональный вид интерфейсных гидов и улучшает взаимодействие пользователя с приложением.