Tippy.js предоставляет гибкие инструменты для управления положением всплывающих подсказок, особенно когда речь идет о границах контейнеров и поведении при переполнении. Эти параметры критически важны для создания корректно позиционируемых тултипов в сложных интерфейсах.
boundaryОписание: boundary определяет элемент,
внутри которого Tippy.js будет ограничивать положение тултипа. Это
позволяет предотвратить вылезание подсказки за пределы заданной
области.
Возможные значения:
viewport — ограничение относительно видимой области
окна браузера.scrollParent — ограничение относительно ближайшего
скроллируемого родителя.Пример использования:
tippy('#button', {
content: 'Подсказка ограничена контейнером',
boundary: document.querySelector('#container')
});
Особенности:
boundary совместимо с Popper.js
modifiers, которые управляют предотвращением выхода за пределы
контейнера (preventOverflow).overflowВ Tippy.js нет прямого параметра overflow, однако
управление переполнением осуществляется через Popper.js
модификаторы. Основной модификатор —
preventOverflow.
preventOverflowОписание: Не позволяет тултипу выйти за пределы
заданного контейнера (boundary). Работает вместе с
boundary и позиционированием через Popper.js.
Настройки:
mainAxis — предотвращает выход тултипа по основной оси
(в направлении позиции, например, top,
bottom).altAxis — предотвращает выход тултипа по второстепенной
оси.tether — если true, тултип будет
“прилипать” к границе контейнера при переполнении; если
false, тултип может сдвигаться.Пример:
tippy('#button', {
content: 'Тултип с контролем переполнения',
popperOptions: {
modifiers: [
{
name: 'preventOverflow',
options: {
boundary: 'viewport',
mainAxis: true,
altAxis: true,
tether: true
}
}
]
}
});
Особенности:
tether: false позволяет тултипу уходить за границы
контейнера, если это необходимо для сохранения видимости.altAxis: true полезна для горизонтальных
тултипов, чтобы они не вылезали за границы слева или справа.boundary и
flipДля сложных интерфейсов важно учитывать не только переполнение, но и
автоматическую смену позиции тултипа. Модификатор flip
позволяет тултипу адаптироваться при недостатке места:
tippy('#button', {
content: 'Тултип с flip и boundary',
popperOptions: {
modifiers: [
{
name: 'flip',
options: {
fallbackPlacements: ['top', 'bottom', 'left', 'right'],
boundary: document.querySelector('#container')
}
},
{
name: 'preventOverflow',
options: {
boundary: document.querySelector('#container')
}
}
]
}
});
Вывод:
boundary задает рамки видимости тултипа.preventOverflow контролирует переполнение внутри этих
границ.flip позволяет тултипу менять позицию при нехватке
места.Эта комбинация гарантирует, что подсказка останется видимой и корректно позиционированной в любых сценариях, включая скроллируемые контейнеры и сложные макеты.
boundary как родительский элемент.viewport как границу.tether: false.Использование этих параметров позволяет создавать интерфейсы, где подсказки ведут себя предсказуемо и не перекрывают важный контент, даже при сложной структуре DOM и динамическом изменении размеров элементов.