Библиотека Tooltipster предоставляет гибкий механизм конфигурации, позволяющий задавать уникальные параметры для каждого отдельного элемента. Это особенно важно в сложных интерфейсах, где разные элементы требуют различного поведения всплывающих подсказок: от простых текстовых уведомлений до интерактивных блоков с динамическим содержимым.
Каждый tooltip инициализируется отдельно, что позволяет передавать собственный набор опций:
$('.element-1').tooltipster({
theme: 'tooltipster-light',
delay: 200
});
$('.element-2').tooltipster({
theme: 'tooltipster-shadow',
delay: 500
});
В данном примере два элемента используют разные темы оформления и задержку появления.
Если в проекте используются глобальные настройки, индивидуальные параметры элемента имеют приоритет над ними:
$.tooltipster.setDefaults({
theme: 'tooltipster-default',
delay: 300
});
$('.custom-element').tooltipster({
delay: 1000
});
Здесь тема будет взята из глобальных настроек, а задержка — из локальной конфигурации.
Tooltipster поддерживает несколько встроенных тем, а также позволяет создавать собственные:
$('.item').tooltipster({
theme: ['tooltipster-noir', 'custom-theme']
});
Можно комбинировать несколько классов для более точного контроля стилей.
$('.item').tooltipster({
maxWidth: 300,
side: 'right'
});
top, bottom, left,
right)$('.item').tooltipster({
delay: 200,
delayTouch: [100, 300]
});
[появление, скрытие] даёт более точный
контроль$('.item').tooltipster({
trigger: 'click'
});
Возможные значения:
hover — по наведениюclick — по кликуcustom — ручное управление$('.item').tooltipster({
trigger: 'custom'
});
$('.item').on('click', function() {
$(this).tooltipster('open');
});
Позволяет полностью контролировать жизненный цикл tooltip.
$('.item').tooltipster({
content: 'Простая подсказка'
});
$('.item').tooltipster({
content: $('<span><strong>Важно:</strong> текст подсказки</span>')
});
Tooltipster корректно обрабатывает jQuery-объекты.
$('.item').tooltipster({
functionBefore: function(instance, helper) {
instance.content('Загрузка...');
setTimeout(function() {
instance.content('Данные загружены');
}, 1000);
}
});
Используется для подгрузки данных перед отображением.
Каждый tooltip может иметь собственные обработчики:
$('.item').tooltipster({
functionInit: function(instance, helper) {
console.log('Инициализация:', helper.origin);
},
functionAfter: function(instance, helper) {
console.log('Закрытие tooltip');
}
});
Основные события:
$('.item').tooltipster({
animation: 'fade',
animationDuration: 350
});
Можно задать:
Часто требуется задать разные настройки для групп:
$('.info').tooltipster({
theme: 'tooltipster-light'
});
$('.warning').tooltipster({
theme: 'tooltipster-punk',
delay: 100
});
Такой подход сохраняет читаемость и упрощает поддержку.
Для гибкости конфигурации настройки можно хранить прямо в HTML:
<button class="tooltip" data-theme="tooltipster-shadow" title="Подсказка"></button>
$('.tooltip').each(function() {
$(this).tooltipster({
theme: $(this).data('theme')
});
});
Позволяет управлять поведением без изменения JS-кода.
Иногда требуется менять параметры в зависимости от условий:
$('.item').tooltipster({
side: window.innerWidth < 768 ? 'bottom' : 'right'
});
Адаптивное поведение повышает удобство использования.
Tooltipster позволяет комбинировать множество параметров:
$('.complex-item').tooltipster({
theme: ['tooltipster-noir'],
animation: 'grow',
delay: 150,
side: 'top',
trigger: 'hover',
maxWidth: 250,
contentAsHTML: true
});
Такая конфигурация даёт полный контроль над отображением и поведением.
При большом количестве элементов:
$('.item').tooltipster({
functionBefore: function(instance, helper) {
if (!instance.content()) {
instance.content('Подгрузка...');
}
}
});
Tooltipster поддерживает плагины, которые можно применять индивидуально:
$('.item').tooltipster({
plugins: ['follower']
});
Каждый элемент может использовать свой набор расширений.
$('.help').tooltipster({
theme: 'tooltipster-light'
});
$('.error').tooltipster({
theme: 'tooltipster-borderless',
animation: 'shake'
});
$('.interactive').tooltipster({
interactive: true,
trigger: 'click'
});
Позволяет взаимодействовать с содержимым (кнопки, формы).
Для крупных проектов удобно выносить настройки в переменные:
const tooltipConfig = {
default: {
theme: 'tooltipster-default',
delay: 200
},
warning: {
theme: 'tooltipster-punk',
delay: 100
}
};
$('.item').tooltipster(tooltipConfig.default);
Упрощает масштабирование и поддержку кода.
Каждый элемент можно управлять отдельно:
$('.item').tooltipster('open');
$('.item').tooltipster('close');
$('.item').tooltipster('destroy');
Позволяет гибко интегрировать tooltip в бизнес-логику приложения.
Индивидуальные настройки в Tooltipster формируют основу гибкого пользовательского интерфейса, позволяя адаптировать поведение и внешний вид подсказок под конкретные сценарии взаимодействия.