Tooltipster — это современная библиотека для создания и управления всплывающими подсказками в JavaScript, построенная с использованием плагинной архитектуры. Главная особенность её структуры — модульность: базовое ядро предоставляет минимальный функционал, а дополнительные возможности подключаются через плагины. Такой подход позволяет легко расширять возможности библиотеки без изменения исходного кода ядра.
Ядро Tooltipster отвечает за базовую логику:
Ядро не зависит от конкретных плагинов. Оно предоставляет
стандартный API: методы show(),
hide(), destroy(), reposition(),
а также события onShow, onHide,
onReady.
Плагин — это модуль, который расширяет или изменяет функциональность
тултипов. Каждый плагин подключается через опцию plugins
при инициализации:
$('.tooltip-element').tooltipster({
plugins: ['sideTip', 'scrollHide']
});
Плагины могут выполнять следующие функции:
sideTip добавляет стрелку и стилизацию тултипа.scrollHide
автоматически скрывает тултип при прокрутке страницы.Каждый плагин имеет жизненный цикл, состоящий из нескольких фаз:
onBeforeShow,
onAfterHide).Взаимодействие построено через механизм событий и хуков. Ядро при определённых действиях (показ, скрытие, обновление позиции) триггерит события, которые могут перехватывать плагины. Плагины могут:
Пример подключения плагина с модификацией содержимого:
$.tooltipster.addPlugin('uppercaseContent', {
functions: {
beforeShow: function(instance) {
let content = instance.content();
instance.content(content.toUpperCase());
}
}
});
$('.tooltip-element').tooltipster({
plugins: ['uppercaseContent']
});
Стандартный плагин имеет следующие ключевые элементы:
Структура объекта плагина:
{
name: 'pluginName',
version: '1.0.0',
defaults: { /* настройки по умолчанию */ },
functions: { /* хуки и методы */ }
}
init метод, регистрируя обработчики.destroy, плагин освобождает ресурсы и снимает все
слушатели.Плагинная архитектура позволяет:
Важно, что плагины должны быть независимыми, использовать события ядра и избегать прямого изменения внутренних методов Tooltipster, чтобы не нарушить стабильность библиотеки.
init и destroy для
корректного управления ресурсами.Понимание архитектуры плагинов Tooltipster обеспечивает гибкость при разработке и возможность создавать мощные кастомные тултипы с минимальными усилиями.