Tippy.js предоставляет мощный и гибкий API для создания всплывающих подсказок и тултипов. Помимо базового функционала отображения тултипов, библиотека включает ряд утилит и хелперов, которые упрощают работу с элементами DOM, управляют поведением подсказок и помогают интегрировать Tippy.js в сложные интерфейсы.
Функция tippy() принимает селектор, элемент или NodeList
и объект опций. Хелперы упрощают динамическое создание и управление
множеством тултипов.
import tippy from 'tippy.js';
tippy('.btn', {
content: 'Нажмите для действия',
placement: 'right',
animation: 'scale',
});
Ключевые возможности:
content, что позволяет подставлять
актуальные данные при наведении.tippy('.dynamic', {
content: (reference) => `Вы навели на элемент #${reference.id}`,
});
Каждый созданный тултип возвращает экземпляр с методами управления:
show() и hide() – явно показать или скрыть
тултип.setContent(newContent) – динамически изменить
содержимое.destroy() – полностью удалить тултип и очистить
события.const tip = tippy('#example', { content: 'Пример' });
tip.show();
tip.setContent('Новый текст');
tip.hide();
tip.destroy();
Tippy.js интегрируется с Popper.js, предоставляя хелперы для управления позицией:
placement – определяет направление
тултипа (top, bottom, left,
right, с вариантами -start и
-end).flip – автоматически меняет позицию
при нехватке места.offset – смещение относительно
элемента, принимает массив [skidding, distance].tippy('#tooltip', {
content: 'Смещение и переворот',
placement: 'top-start',
offset: [0, 10],
flip: true,
});
Интерактивность: Для тултипов, содержащих кнопки или
формы, устанавливается interactive: true, чтобы они не
закрывались при наведении курсора.
tippy('#interactive', {
content: 'Кликни на кнопку внутри',
interactive: true,
});
Tippy.js поддерживает плагины для расширения функционала:
Пример использования:
import { followCursor } from 'tippy.js';
tippy('.cursor', {
content: 'Следует за курсором',
plugins: [followCursor],
followCursor: true,
});
Экземпляры поддерживают события жизненного цикла:
onShow(instance) – перед показом тултипа.onHide(instance) – перед скрытием.onMount(instance) – когда тултип добавлен в DOM.onUntrigger(instance) – при снятии триггера.tippy('#eventExample', {
content: 'События тултипа',
onShow: (instance) => console.log('Показан:', instance),
onHide: (instance) => console.log('Скрыт:', instance),
});
Эти хелперы позволяют интегрировать тултипы в сложные интерфейсы, синхронизируя их с анимациями, динамическим контентом и состояниями приложения.
Tippy.js предоставляет доступ к Popper.js через
popperInstance:
const tip = tippy('#popperExample', { content: 'Пример' });
console.log(tip.popperInstance); // Доступ к Popper API
С помощью этого хелпера можно тонко настраивать позиционирование, добавлять кастомные модификаторы и управлять производительностью при большом количестве тултипов.
Для комплексных интерфейсов полезны функции
tippy.hideAll() и tippy.destroyAll():
// Скрыть все тултипы на странице
tippy.hideAll();
// Удалить все тултипы и очистить события
tippy.destroyAll();
Эти хелперы упрощают работу с множественными динамическими подсказками, особенно при переходах между страницами или изменении DOM.
Tippy.js позволяет использовать HTML-шаблоны для тултипов через
allowHTML: true:
tippy('#custom', {
content: '<strong>Жирный текст</strong> с кнопкой <button>OK</button>',
allowHTML: true,
interactive: true,
});
Это открывает возможности для интеграции тултипов с компонентами интерфейса, формами и даже мини-виджетами внутри подсказок.
Эти утилиты и хелперы делают Tippy.js гибким инструментом для создания профессиональных и интерактивных подсказок, управляемых как программно, так и через динамический DOM, обеспечивая полный контроль над поведением, стилем и содержимым тултипов.