Библиотека Tippy.js предоставляет мощный и гибкий механизм для создания всплывающих подсказок, контекстных меню и других элементов, требующих динамического позиционирования. Одним из ключевых аспектов является контроль направления и положения всплывающего элемента относительно целевого элемента (reference element).
placementГлавная опция для управления расположением всплывающей подсказки —
placement. Она определяет, с какой стороны
целевого элемента будет отображаться тултип.
placement:top — сверхуbottom — снизуleft — слеваright — справаtop-start — сверху, выровнено по левому краюtop-end — сверху, выровнено по правому краюbottom-start — снизу, по левому краюbottom-end — снизу, по правому краюleft-start — слева, по верхнему краюleft-end — слева, по нижнему краюright-start — справа, по верхнему краюright-end — справа, по нижнему краюПример использования:
tippy('#button', {
content: 'Подсказка сверху',
placement: 'top'
});
Выделение: placement — это базовая
настройка, задающая начальное направление тултипа. В сочетании с опцией
arrow можно дополнительно управлять положением стрелки
относительно целевого элемента.
Tippy.js интегрируется с Popper.js, что позволяет автоматически корректировать позицию всплывающего элемента, если выбранное направление приводит к выходу за границы окна.
flip: true — позволяет тултипу автоматически изменять
направление, если стандартное размещение не помещается на экране.boundary — ограничивает область, внутри которой тултип
может появляться (например, родительский контейнер или
window).Пример:
tippy('#button', {
content: 'Тултип с автоматическим флипом',
placement: 'right',
flip: true,
boundary: 'viewport'
});
Выделение: автоматический флип предотвращает ситуации, когда подсказка будет скрыта за пределами видимой области.
Для точной настройки позиции используется опция
offset, которая принимает массив
[skidding, distance]:
top/bottom,
вертикальное для left/right).Пример:
tippy('#button', {
content: 'Смещённый тултип',
placement: 'top',
offset: [10, 20]
});
Выделение: offset полезен для точного
позиционирования, когда стандартное размещение не обеспечивает нужного
визуального эффекта.
Tippy.js позволяет использовать опцию
followCursor и
interactive для динамического
позиционирования:
followCursor: true — тултип следует за курсором при
наведении.interactive: true — делает тултип интерактивным, чтобы
пользователь мог взаимодействовать с его содержимым, не закрывая
его.Пример:
tippy('#button', {
content: 'Следует за курсором',
placement: 'top',
followCursor: true,
interactive: true
});
Выделение: комбинация этих опций особенно полезна для сложных интерфейсов с динамическим контентом.
appendTo для контроля области рендерингаОпция appendTo позволяет указать
контейнер, в который будет помещён тултип. Это важно для управления
позиционированием в контексте overflow или сложной
верстки:
tippy('#button', {
content: 'Тултип в кастомном контейнере',
placement: 'bottom',
appendTo: document.querySelector('#custom-container')
});
Выделение: appendTo предотвращает
проблемы с обрезанием тултипа при overflow: hidden у
родительских элементов.
placement и смещением offset. Используется для
статичных элементов.flip: true и boundary, чтобы тултип корректно
менял направление при ограниченном пространстве.followCursor и interactive позволяет тултипу
адаптироваться под курсор и интерактивные элементы.bottom или bottom-start.top
или top-end.right или
right-start.bottom с
выравниванием start или end.Выделение: правильный выбор направления делает интерфейс более предсказуемым и удобным для пользователя, а также предотвращает наложение на другие элементы.