Tippy.js предоставляет мощный API не только для создания всплывающих подсказок на элементах, но и для управления ими глобально через статические методы. Статические методы позволяют работать с группами тултипов, управлять их жизненным циклом и конфигурацией без необходимости сохранять каждую отдельную инстанцию.
tippy.setDefaultProps(props)Метод setDefaultProps позволяет установить
глобальные значения опций, которые будут применяться ко
всем создаваемым тултипам, если явно не указаны другие настройки.
tippy.setDefaultProps({
placement: 'right',
theme: 'light',
delay: [100, 200]
});
Ключевые моменты:
placement — позиционирование тултипа относительно
целевого элемента (top, bottom,
left, right и их комбинации с
-start или -end).theme — стилизация тултипа, можно использовать
встроенные темы или собственные классы CSS.delay — задержка показа и скрытия в миллисекундах,
может быть числом или массивом [show, hide].После вызова setDefaultProps все последующие вызовы
tippy(target, options) будут учитывать эти настройки как
базовые.
tippy.hideAll(options)Статический метод hideAll скрывает все активные
тултипы на странице. Позволяет управлять состоянием интерфейса
централизованно.
tippy.hideAll({ duration: 300, exclude: someTippyInstance });
Опции метода:
duration — анимация скрытия в миллисекундах.exclude — исключает указанный тултип из скрытия.
Принимает инстанцию Tippy.js.delay — можно задать дополнительную задержку перед
скрытием.Используется для предотвращения перекрытия тултипов или при переходе между различными интерактивными элементами интерфейса.
tippy.disableAll() и tippy.enableAll()Эти методы позволяют управлять доступностью тултипов глобально.
tippy.disableAll();
tippy.enableAll();
Особенности:
disableAll() — блокирует все тултипы, создавая эффект
«неактивности». Тултипы не будут показываться при наведении.enableAll() — восстанавливает интерактивность, тултипы
снова реагируют на события.tippy.destroyAll()Метод полностью уничтожает все созданные тултипы, освобождая ресурсы и удаляя обработчики событий.
tippy.destroyAll();
Особенности применения:
destroyAll нельзя повторно использовать
старые инстанции, нужно создавать новые через tippy().tippy.createSingleton(tippies, options)Позволяет объединить несколько тултипов в единую «синглтон»-инстанцию, которая управляет показом одной подсказки для разных элементов.
const buttons = document.querySelectorAll('.btn');
const instances = tippy(buttons, { content: 'Пример' });
const singleton = tippy.createSingleton(instances, {
delay: 100,
moveTransition: 'transform 0.2s ease-out'
});
Преимущества:
tippy.currentInputСтатическое свойство, которое хранит текущий элемент, над которым находится курсор, если используется интерактивное поведение.
document.addEventListener('mousemove', () => {
console.log(tippy.currentInput); // элемент, над которым тултип активен
});
Особенности:
Хотя основная работа с контентом тултипа происходит через опции
content при создании инстанции, статические методы
позволяют:
hideAll), показывать
(enableAll) или уничтожать (destroyAll)
тултипы.setDefaultProps).createSingleton).Эта архитектура обеспечивает масштабируемость и контроль над тултипами на уровне приложения, что критично при работе с динамическими интерфейсами.
Если требуется, можно отдельно рассмотреть варианты
использования createSingleton с динамическим контентом и
кастомной анимацией, так как это одна из самых сложных, но
мощных функций Tippy.js.