Библиотека Tooltipster предоставляет возможность централизованного управления поведением всех тултипов через глобальные настройки. Это позволяет избежать дублирования конфигурации при инициализации множества элементов и обеспечивает единообразие интерфейса.
Для задания глобальных параметров используется метод:
$.tooltipster.setDefaults({
// настройки по умолчанию
});
Все тултипы, созданные после вызова setDefaults, будут
наследовать указанные параметры, если при индивидуальной инициализации
не переопределены конкретные опции.
theme Определяет тему оформления тултипов. Можно использовать встроенные темы Tooltipster или собственные CSS-классы:
theme: 'tooltipster-shadow'animation Тип анимации при открытии и закрытии:
'fade', 'slide', 'grow'.
animation: 'fade'delay Задержка перед появлением тултипа в миллисекундах:
delay: 300trigger Событие, которое вызывает показ тултипа.
Возможные значения: 'hover', 'click',
'custom'.
trigger: 'hover'interactive Позволяет сделать тултип интерактивным, предотвращая его закрытие при наведении курсора на содержимое тултипа:
interactive: truecontentAsHTML Позволяет использовать HTML внутри тултипа:
contentAsHTML: truemaxWidth Ограничивает максимальную ширину тултипа:
maxWidth: 250position Задаёт предпочтительное положение относительно элемента-мишени:
position: 'top'Tooltipster позволяет назначать обработчики событий на уровне всех тултипов. Ключевые события:
Пример глобальной привязки обработчика:
$.tooltipster.setDefaults({
functionReady: function(instance, helper) {
console.log('Тултип готов:', helper.origin);
}
});
Глобальные настройки не мешают индивидуальной конфигурации. Любой элемент может иметь свои параметры:
$('.my-element').tooltipster({
theme: 'tooltipster-punk',
delay: 500
});
В этом случае для элемента .my-element будут применены
theme и delay, а остальные опции будут взяты
из глобальных настроек.
Для тултипов с динамически подгружаемым контентом удобно
комбинировать глобальные параметры с функциями
functionBefore и functionFormat:
$.tooltipster.setDefaults({
functionBefore: function(instance, helper) {
if (!instance.contentLoaded) {
$.get('/tooltip-content', function(data){
instance.content(data);
instance.contentLoaded = true;
});
}
},
contentAsHTML: true
});
Такой подход позволяет централизованно управлять асинхронной подгрузкой данных для всех тултипов без повторного дублирования кода.
$.tooltipster.setDefaults({
theme: 'tooltipster-shadow',
animation: 'fade',
delay: 300,
trigger: 'hover',
interactive: true,
contentAsHTML: true,
maxWidth: 300,
position: 'top',
functionBefore: function(instance, helper) {
if (!instance.contentLoaded) {
instance.content('Загрузка...');
}
},
functionReady: function(instance, helper) {
console.log('Тултип готов к показу');
}
});
Эта конфигурация задаёт универсальные правила для всех тултипов, обеспечивая единый стиль и поведение на сайте.