Для работы с Tooltipster требуется подключение CSS и JS файлов библиотеки. В проекте можно использовать локальные файлы или CDN:
<link rel="stylesheet" href="tooltipster.bundle.min.css" />
<script src="jquery.min.js"></script>
<script src="tooltipster.bundle.min.js"></script>
Инициализация выполняется через jQuery:
$('.tooltip-element').tooltipster({
content: 'Простой текст тултипа',
theme: 'tooltipster-light',
animation: 'fade',
delay: 200
});
Ключевые параметры:
content — текст или HTML-контент тултипа.theme — визуальный стиль тултипа.animation — анимация появления/исчезновения.delay — задержка перед показом в миллисекундах.Tooltipster позволяет вставлять любой HTML-контент, включая списки,
изображения и формы. Для этого параметр content должен
содержать jQuery объект или строку с HTML:
$('.tooltip-element').tooltipster({
content: $('<div><h3>Заголовок</h3><p>Описание элемента</p></div>'),
interactive: true
});
Особенности:
interactive: true — делает тултип интерактивным,
позволяя кликать по элементам внутри.Tooltipster поддерживает динамическое обновление содержимого через
колбэк functionBefore или метод content:
$('.tooltip-element').tooltipster({
functionBefore: function(instance, helper){
if(helper.origin.dataset.loaded !== 'true'){
$.get('/api/info', function(data){
instance.content(data);
helper.origin.dataset.loaded = 'true';
});
}
}
});
Особенности подхода:
functionBefore вызывается перед показом тултипа.loaded предотвращает повторные
запросы.Tooltipster предоставляет методы для программного управления:
var instance = $('.tooltip-element').tooltipster({
content: 'Начальный текст'
}).tooltipster('instance');
// Открытие и закрытие
instance.open();
instance.close();
// Обновление содержимого
instance.content('Новый текст');
// Проверка состояния
if(instance.status() === 'open') {
console.log('Тултип открыт');
}
Методы:
open() — открывает тултип.close() — закрывает тултип.content() — получает или задаёт содержимое.status() — возвращает текущее состояние
(open или closed).Для форм и кнопок внутри тултипа важно использовать параметр
interactive: true, чтобы тултип не закрывался при клике
внутри:
$('.tooltip-form').tooltipster({
content: $('<form><input type="text" placeholder="Имя"><button>Отправить</button></form>'),
interactive: true,
trigger: 'click'
});
Особенности:
trigger устанавливает событие, запускающее
тултип (click, hover,
custom).Tooltipster поддерживает разнообразные варианты анимации и позиционирования:
$('.tooltip-element').tooltipster({
animation: 'grow',
delay: 300,
side: 'right',
distance: 10,
theme: 'tooltipster-noir'
});
Параметры:
animation: fade, grow,
slide, swing.side: top, bottom,
left, right.distance: расстояние от целевого элемента.theme для кастомного оформления.Содержимое тултипа можно обновлять программно или удалять полностью:
// Обновление
$('.tooltip-element').tooltipster('content', 'Обновлённый текст');
// Полное уничтожение
$('.tooltip-element').tooltipster('destroy');
Замечания:
destroy все события и стили тултипа
удаляются.Для группы элементов можно использовать селектор и общие настройки:
$('.tooltip-group').tooltipster({
content: 'Общий тултип',
delay: 150,
theme: 'tooltipster-light'
});
Для индивидуальной настройки каждого элемента можно использовать
data-атрибуты:
<button class="tooltip-element" data-tooltip="Специальный текст">Кнопка</button>
$('.tooltip-element').each(function(){
$(this).tooltipster({
content: $(this).data('tooltip')
});
});
Это позволяет сочетать единый стиль с уникальным содержимым для каждого элемента.
Tooltipster можно комбинировать с другими событиями Jav * aScript:
$('.tooltip-element').on('click', function(){
$(this).tooltipster('open');
});
$(document).on('scroll', function(){
$('.tooltip-element').tooltipster('close');
});
Особенности:
open,
close, reposition.Эти инструменты позволяют создавать динамичные, интерактивные и визуально привлекательные тултипы, полностью контролируя их содержимое, поведение и стиль.