Для начала необходимо подключить библиотеку Tooltipster к проекту.
Она требует наличия jQuery версии 1.7 или выше. Основные файлы: CSS для
оформления и JS для функционала. Подключение осуществляется через
<link> и <script>:
<link rel="stylesheet" type="text/css" href="tooltipster.bundle.min.css" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="tooltipster.bundle.min.js"></script>
После подключения Tooltipster готов к инициализации на элементах DOM.
Инициализация производится вызовом метода .tooltipster()
на выбранных элементах jQuery. Простейший пример:
$('.tooltip').tooltipster();
По умолчанию тултип появляется при наведении курсора, использует базовую анимацию и тему по умолчанию. Параметры можно настраивать через объект опций.
Ключевые опции:
content — текст или HTML-контент тултипа.theme — тема оформления (например,
'tooltipster-shadow').trigger — событие появления ('hover',
'click', 'custom').animation — тип анимации появления
('fade', 'grow', 'swing').delay — задержка перед показом (в мс).interactive — возможность взаимодействия с контентом
тултипа.Tooltipster позволяет динамически менять содержимое:
$('.tooltip').tooltipster('content', 'Новый текст');
Можно использовать HTML-контент и даже загружать данные через AJAX:
$('.tooltip').tooltipster({
content: 'Загрузка...',
functionBefore: function(instance, helper){
var $origin = $(helper.origin);
if ($origin.data('loaded') !== true){
$.get('/tooltip/data', function(data){
instance.content(data);
$origin.data('loaded', true);
});
}
}
});
Опция functionBefore позволяет выполнить код перед
показом тултипа, например, подгрузку данных.
Tooltipster поддерживает кастомные темы через CSS. Для базовых тем подключается CSS из пакета. Для кастомных:
.my-tooltip-theme .tooltipster-box {
background-color: #333;
color: #fff;
border-radius: 5px;
}
.my-tooltip-theme .tooltipster-arrow {
border-color: #333;
}
И применяем тему через опцию:
$('.tooltip').tooltipster({ theme: 'my-tooltip-theme' });
При переходе на Tooltipster важно учитывать несколько стратегий:
// Старый код
$('.old-tooltip').oldTooltipLib({ /* опции */ });
// Новый код
$('.old-tooltip').tooltipster({ theme: 'tooltipster-light' });
functionBefore, functionReady или
functionAfter.$('.dynamic-tooltip').tooltipster({
content: 'Загрузка...',
functionBefore: function(instance, helper){
let $el = $(helper.origin);
if (!$el.data('loaded')){
fetch('/api/tooltip')
.then(res => res.text())
.then(data => {
instance.content(data);
$el.data('loaded', true);
});
}
}
});
function createTooltip(selector, options){
$(selector).tooltipster($.extend({
theme: 'tooltipster-light',
delay: 200
}, options));
}
createTooltip('.btn-help', { content: 'Помощь по кнопке' });
Tooltipster поддерживает события, на которые можно подписываться:
show — перед показом тултипа.shown — после показа.hide — перед скрытием.hidden — после скрытия.position — после вычисления позиции.Пример:
$('.tooltip').on('shown.tooltipster', function(){
console.log('Тултип показан');
});
События удобны для интеграции с другими компонентами интерфейса или логирования.
if ($(window).width() > 768){
$('.tooltip').tooltipster();
}
update и destroy для
управления жизненным циклом тултипов.Tooltipster совместим с jQuery 1.7+, работает во всех современных браузерах. Ограничения:
contentCloning: false, чтобы не перегружать
DOM.Эти параметры помогают плавно интегрировать библиотеку в существующий проект, избегая конфликтов и снижения производительности.
Tooltipster обеспечивает гибкий и мощный механизм для создания интерактивных и адаптивных тултипов, позволяя применять различные стратегии миграции, от прямой замены до построения абстрактных оберток, что делает библиотеку надежным инструментом для долгосрочной поддержки интерфейсов.