Tooltipster — это мощная библиотека JavaScript для создания
настраиваемых, анимационных всплывающих подсказок. Она основана на
jQuery и обеспечивает высокую гибкость в управлении внешним видом,
позиционированием и поведением тултипов. Основная концепция построена на
привязке тултипа к элементу DOM с помощью метода
.tooltipster().
$('.tooltip').tooltipster({
content: 'Простая подсказка',
theme: 'tooltipster-default',
delay: 200
});
Ключевые моменты:
content — текст или HTML-контент тултипа.theme — визуальный стиль подсказки. Можно создавать
собственные темы через CSS.delay — задержка перед показом подсказки в
миллисекундах.Tooltipster поддерживает кастомные темы и стили. Для создания собственной темы необходимо определить CSS-класс, который будет использоваться при инициализации тултипа:
.tooltipster-custom {
background-color: #333;
color: #fff;
border-radius: 5px;
padding: 10px;
font-size: 14px;
box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
Применение темы к элементу:
$('.tooltip').tooltipster({
content: 'Подсказка с кастомной темой',
theme: 'tooltipster-custom'
});
Tooltipster позволяет использовать разные типы контента:
$('.tooltip-html').tooltipster({
content: $('<span><strong>Важная информация</strong><br>Дополнительный текст</span>'),
theme: 'tooltipster-default'
});
$('.tooltip-ajax').tooltipster({
content: 'Загрузка...',
functionBefore: function(instance, helper){
$.get('/api/data', function(data){
instance.content(data.message);
});
}
});
Преимущество использования HTML и AJAX: возможность отображать сложный контент, включая изображения, кнопки и списки, без необходимости статической разметки.
Tooltipster автоматически определяет оптимальное положение подсказки относительно целевого элемента, но также можно задать конкретное позиционирование:
$('.tooltip-position').tooltipster({
content: 'Подсказка сверху',
side: 'top'
});
Возможные значения side:
top, right, bottom,
left.
Для более тонкого контроля можно использовать
functionPosition, которая позволяет программно изменять
координаты тултипа перед его отображением:
$('.tooltip-custom-pos').tooltipster({
functionPosition: function(instance, helper, position){
position.coord.top += 10; // сдвиг вниз
position.coord.left += 5; // сдвиг вправо
return position;
}
});
Tooltipster предоставляет множество опций для управления временем жизни подсказки и взаимодействиями пользователя:
trigger — событие, при котором показывается тултип
(hover, click, custom).delay — задержка перед показом.animation — анимация появления (fade,
grow, slide, swing).interactive — если true, пользователь
может взаимодействовать с контентом тултипа.$('.tooltip-interactive').tooltipster({
content: 'Тултип с кнопкой',
interactive: true,
trigger: 'click'
});
События Tooltipster:
show — перед показом.shown — после отображения.hide — перед скрытием.hidden — после скрытия.$('.tooltip').on('shown.tooltipster', function(){
console.log('Тултип отображён');
});
Tooltipster позволяет изменять содержимое тултипа после его создания без необходимости переинициализации:
var instance = $('.tooltip-dynamic').tooltipster().tooltipster('instance');
instance.content('Новый контент');
Это полезно для интерактивных интерфейсов, где подсказки должны отображать актуальную информацию в реальном времени.
Для страниц с большим количеством подсказок можно создавать группы тултипов для единого управления:
$('.tooltip-group').tooltipster({
multiple: true,
theme: 'tooltipster-default'
});
Опция multiple: позволяет одновременно
показывать несколько тултипов без скрытия других.
Tooltipster часто используется для валидации форм и отображения ошибок:
$('#input-field').tooltipster({
content: 'Поле обязательно для заполнения',
trigger: 'custom',
onlyOne: false,
theme: 'tooltipster-error'
});
// Показ подсказки при ошибке
$('#input-field').tooltipster('show');
Такой подход делает интерфейсы более наглядными и удобными для пользователя.
contentAsHTML позволяет снизить нагрузку на
парсер, если используется только текст.Tooltipster обеспечивает полный контроль над внешним видом, поведением и динамическим контентом подсказок. С помощью комбинации тем, событий и программного управления можно создавать сложные интерфейсы с отзывчивыми и интерактивными тултипами.