Tooltipster — это современная библиотека для создания подсказок (tooltips) в веб-приложениях на JavaScript. Она позволяет гибко управлять отображением всплывающих подсказок, поддерживает HTML-контент, анимации, различные темы и события взаимодействия. Tooltipster строится поверх jQuery и использует его для управления DOM, хотя сама библиотека обладает собственной системой конфигурации и API.
Ключевые моменты:
Tooltipster привязывается к элементам DOM с помощью метода
.tooltipster(). Минимальный пример:
$(document).ready(function() {
$('.tooltip').tooltipster({
content: 'Простая подсказка',
theme: 'tooltipster-default'
});
});
Пояснения:
$('.tooltip') — селектор элементов, к которым
привязывается тултип.content — текст или HTML-контент подсказки.theme — тема оформления, подключаемая через CSS.Можно использовать как статический текст, так и динамический контент, генерируемый через функции:
$('.tooltip').tooltipster({
content: $('<span>Динамический <strong>HTML</strong></span>'),
interactive: true
});
Tooltipster предоставляет множество параметров для управления поведением тултипов:
hover, click, custom).fade,
grow, swing).top, bottom,
left, right).Пример с настройкой поведения:
$('.tooltip').tooltipster({
content: 'Подсказка с задержкой',
trigger: 'hover',
animation: 'grow',
delay: 300,
maxWidth: 250,
interactive: true,
side: 'right'
});
Tooltipster позволяет изменять контент тултипа в реальном времени через API:
var instance = $('.tooltip').tooltipster().tooltipster('instance');
instance.content('Новый динамический текст');
Метод instance.content() заменяет текущий контент, при
этом тултип автоматически обновляется. Также возможна подгрузка контента
через AJAX:
$('.tooltip').tooltipster({
content: 'Загрузка...',
functionBefore: function(instance, helper) {
if (!helper.origin.hasAttribute('data-loaded')) {
$.get('/tooltip-data', function(data) {
instance.content(data);
helper.origin.setAttribute('data-loaded', true);
});
}
}
});
Tooltipster поддерживает несколько событий, которые можно использовать для интеграции с другими компонентами:
show — вызывается при отображении тултипа.shown — после завершения анимации появления.hide — перед скрытием тултипа.hidden — после завершения анимации скрытия.position — при вычислении позиции тултипа.Пример использования событий:
$('.tooltip').tooltipster({
content: 'Событийная подсказка'
}).on('shown', function() {
console.log('Тултип показан');
}).on('hidden', function() {
console.log('Тултип скрыт');
});
При interactive: true пользователь может кликать по
ссылкам, кнопкам и формам внутри тултипа. Чтобы тултип не закрывался при
наведении на его содержимое, используется параметр
interactive:
$('.tooltip').tooltipster({
content: $('<div><input type="text" placeholder="Введите текст"></div>'),
interactive: true,
trigger: 'click'
});
Tooltipster поставляется с предустановленными темами, такими как
tooltipster-default, tooltipster-light,
tooltipster-noir. Можно создавать кастомные темы через
CSS:
.tooltipster-mytheme {
background-color: #222;
color: #fff;
border-radius: 8px;
padding: 10px;
font-size: 14px;
}
Привязка кастомной темы:
$('.tooltip').tooltipster({
content: 'Кастомная тема',
theme: 'tooltipster-mytheme'
});
Tooltipster совместим с большинством современных браузеров и легко интегрируется с фреймворками, использующими jQuery. Для больших приложений рекомендуется:
Tooltipster позволяет создавать мощные и гибкие интерфейсы с подсказками, обеспечивая удобство и богатый UX без сложной ручной работы с DOM и анимациями.