Для начала работы с Tooltipster необходимо подключить библиотеку и её зависимости. Tooltipster основан на jQuery, поэтому обязательно подключение jQuery перед самой библиотекой.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tooltipster@4.2.8/dist/css/tooltipster.bundle.min.css" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/tooltipster@4.2.8/dist/js/tooltipster.bundle.min.js"></script>
Инициализация выполняется с помощью метода
.tooltipster() на выбранных элементах:
$('.tooltip').tooltipster({
content: 'Простой текст тултипа',
theme: 'tooltipster-light'
});
Ключевые параметры инициализации:
content — текст или HTML-содержимое тултипа.theme — визуальная тема, можно использовать встроенные
или кастомные CSS.trigger — способ вызова тултипа (hover,
click, custom).animation — эффект появления (fade,
grow, swing, slide).delay — задержка перед показом в миллисекундах.Tooltipster активно развивается, и каждая версия имеет свои особенности. Основные версии: 3.x, 4.x, 5.x. Версии несовместимы друг с другом по API и способу инициализации.
.tooltipster() с простыми опциями
(position, offset,
animation).Пример:
$('.tooltip').tooltipster({
animation: 'fade',
delay: 200,
theme: 'tooltipster-default',
content: 'Тултип 3.x'
});
content.before, after,
position, update.functionBefore для
динамического обновления содержимого перед показом.Пример динамического контента:
$('.tooltip').tooltipster({
content: $('<span>Загрузка...</span>'),
functionBefore: function(instance, helper){
if(!instance.contentSet){
$.get('/api/tooltip-data', function(data){
instance.content(data);
instance.contentSet = true;
});
}
}
});
update.instance.open() и instance.close().onInit, onReady,
onAfterOpen, onAfterClose.Пример с обработкой событий:
$('.tooltip').tooltipster({
content: 'Тултип 5.x',
trigger: 'click',
onInit: function(instance){
console.log('Tooltip инициализирован');
},
onAfterOpen: function(instance){
console.log('Tooltip открыт');
}
});
При переходе с версии 3.x на 4.x и 5.x важно учитывать следующие моменты:
Методы и опции Многие методы 3.x и 4.x устарели.
Например, .tooltipster('update') заменяется в 5.x на
instance.content().
Темы и стили В 5.x темы оформляются через SCSS или CSS-модули. Стили 3.x и 4.x могут не работать корректно.
События События изменили структуру параметров. В
5.x используются новые хуки (onInit, onReady,
onAfterOpen, onAfterClose), старые
(before, after) устарели.
Контент В 5.x обязательна проверка, что контент
безопасен для вставки, если используется HTML. Статический текст
вставляется через content: 'Текст', динамический — через
instance.content().
Пример корректного обновления содержимого в 5.x:
const instance = $('.tooltip').tooltipster().tooltipster('instance');
instance.content('<strong>Обновлённый контент</strong>');
Для контроля версий Tooltipster в проектах используют менеджеры пакетов:
npm install tooltipster@4.2.8
yarn add tooltipster@5.0.0
Рекомендовано фиксировать версии через package.json,
чтобы избежать несовместимости при совместной работе нескольких
разработчиков или деплое на продакшн.
Tooltipster версии 4.x и 5.x совместим с jQuery 3.x. При использовании старых версий jQuery (1.x или 2.x) возможны ошибки работы плагина:
.tooltipster() может не инициализироваться.update, position) могут
работать некорректно.functionBefore (4.x) или instance.content()
(5.x).