Tooltipster — мощная библиотека для создания интерактивных всплывающих подсказок на страницах, и одной из ключевых возможностей является динамическая адаптация размеров подсказок в зависимости от контента и окружающего пространства.
По умолчанию Tooltipster автоматически рассчитывает размеры тултипа исходя из содержимого. Это означает, что если текст, изображение или HTML-элемент внутри подсказки меняется, ширина и высота тултипа будут корректироваться без дополнительного вмешательства.
Пример инициализации с автоматической подгонкой:
$('.tooltip').tooltipster({
content: 'Простая подсказка с динамическим размером',
theme: 'tooltipster-light',
animation: 'fade',
delay: 200
});
Ключевой момент: Tooltipster использует
max-width и max-height для ограничения
размеров, чтобы тултип не выходил за пределы окна браузера.
Для контроля внешнего вида подсказки можно задать параметры
maxWidth и minWidth:
$('.tooltip').tooltipster({
content: 'Подсказка с ограничением размеров',
maxWidth: 300, // Максимальная ширина в пикселях
minWidth: 150 // Минимальная ширина в пикселях
});
Эти параметры позволяют обеспечить читаемость и предотвратить чрезмерное растяжение подсказки, особенно при динамически изменяемом содержимом.
Tooltipster предоставляет метод content() для изменения
содержимого в реальном времени. После изменения размера тултипа
библиотека автоматически перерасчитывает его ширину и высоту:
var instance = $('.tooltip').tooltipster().tooltipster('instance');
instance.content('Новое содержимое с большим текстом, требующим увеличения тултипа');
Если новое содержимое шире или выше предыдущего, тултип плавно увеличивается, сохраняя анимацию появления.
Tooltipster учитывает границы окна браузера, чтобы подсказка не
выходила за экран. Для этого используются настройки side и
functionPosition.
Пример адаптивного позиционирования:
$('.tooltip').tooltipster({
content: 'Подсказка, подстраивающаяся под окно',
side: ['top', 'right', 'bottom', 'left'],
functionPosition: function(instance, helper, position){
// position - объект с координатами и размерами тултипа
if(position.coord.left + position.size.width > $(window).width()){
position.coord.left = $(window).width() - position.size.width - 10;
}
return position;
}
});
Важный аспект: функция functionPosition
позволяет не только ограничивать размеры, но и менять координаты
тултипа, если он может выйти за видимую область экрана.
Tooltipster автоматически пересчитывает позицию и размеры тултипа при
изменении размеров окна браузера. Для более сложных сценариев можно
использовать метод reposition():
$(window).on('resize', function(){
$('.tooltip').tooltipster('reposition');
});
Это полезно при динамически изменяемых интерфейсах, где положение элементов и доступное пространство могут меняться.
Даже с динамическим подстроением размеров, CSS остаётся важным инструментом. Через классы темы или собственные стили можно ограничить максимальную высоту, добавить скролл и обеспечить визуальную согласованность:
.tooltipster-sidetip .tooltipster-box {
max-height: 200px;
overflow-y: auto;
}
Такой подход полезен при отображении больших блоков информации или длинных списков внутри подсказки.
maxWidth и
minWidth.reposition() при изменении интерфейса.Эти инструменты обеспечивают гибкость и позволяют создавать подсказки, которые корректно отображаются на любых устройствах и при любом содержимом.