Tooltipster предоставляет мощный механизм для автоматического определения позиции всплывающей подсказки относительно целевого элемента. Этот функционал особенно полезен, когда элементы страницы расположены динамически и заранее неизвестно, куда лучше разместить тултип, чтобы он не перекрывал контент и оставался видимым на экране.
Выбор позиции по приоритету Tooltipster
использует параметр side или functionPosition,
чтобы определить предпочтительные стороны (top, bottom, left, right).
При включенном автоматическом позиционировании библиотека проверяет
доступное пространство вокруг элемента и подбирает оптимальное
расположение.
$('.tooltip').tooltipster({
content: 'Подсказка с авто-позиционированием',
side: ['top', 'right', 'bottom', 'left']
});
Здесь side задает приоритеты: сначала
будет проверяться top, если недостаточно места —
right, затем bottom, и, наконец,
left.
Динамическая подстройка при изменении размеров
окна Tooltipster умеет реагировать на изменения окна браузера и
пересчитывать позицию тултипа. Это достигается
включением параметра viewportAware (по умолчанию включен) и
использованием triggerClose при необходимости:
$('.tooltip').tooltipster({
content: 'Подсказка, которая подстраивается под экран',
viewportAware: true,
triggerClose: {
scroll: true,
click: true
}
});
Параметр viewportAware: true гарантирует, что тултип не
выйдет за границы видимой области.
Использование функции functionPosition для
полной кастомизации Для сложных интерфейсов можно задать
функцию, которая самостоятельно определяет координаты тултипа:
$('.tooltip').tooltipster({
content: 'Кастомная позиция',
functionPosition: function(instance, helper, position){
if ($(window).width() < 500) {
position.side = 'bottom';
}
return position;
}
});
В helper передаются данные о размере тултипа и целевого
элемента, что позволяет точно вычислять координаты,
учитывая любые ограничения.
Tooltipster учитывает:
tooltipSize)originSize)viewportOffset)offsetX и
offsetYПример использования смещений для тонкой настройки позиции:
$('.tooltip').tooltipster({
side: ['top', 'bottom'],
distance: 15,
offsetX: 10,
offsetY: -5
});
distance задаёт отступ тултипа от элемента, а
offsetX/offsetY позволяют точно
подвинуть подсказку без изменения стороны.
Чтобы тултип не выходил за границы родительского контейнера или окна, используется комбинация параметров:
side — список приоритетных сторонfunctionPosition — кастомная функция, корректирующая
положениеviewportAware — контроль видимой областиminIntersection — минимальное требуемое перекрытие с
целевым элементомПример с минимальным перекрытием:
$('.tooltip').tooltipster({
side: ['top', 'bottom', 'left', 'right'],
minIntersection: 0.3 // тултип должен перекрывать хотя бы 30% элемента
});
При динамически изменяемом контенте или анимациях можно использовать методы:
instance.reposition() — пересчитать позицию
тултипаinstance.open() с повторной инициализацией позицииvar tooltip = $('.tooltip').tooltipster().tooltipster('instance');
tooltip.content('Новый текст');
tooltip.reposition();
Это гарантирует, что подсказка будет корректно позиционироваться даже при изменении размеров целевого элемента.
side.functionPosition.viewportAware для предотвращения выхода за
пределы экрана.offsetX, offsetY и
distance для тонкой подстройки.reposition() после
изменения размеров или текста тултипа.Автоматическое позиционирование Tooltipster сочетает простоту использования и гибкость кастомизации, обеспечивая стабильное и корректное отображение подсказок в любых условиях.