Создание всплывающей подсказки начинается с вызова функции
tippy(). Основной синтаксис выглядит следующим образом:
tippy(targets, options);
targets — CSS-селектор, DOM-элемент
или массив элементов, к которым привязывается тултип.options — объект с настройками
поведения и внешнего вида.При инициализации создаётся экземпляр TippyInstance, который хранит все данные о состоянии тултипа, включая элементы DOM, события и настройки.
const button = document.querySelector('#myButton');
const tip = tippy(button, {
content: 'Привет, мир!',
placement: 'right',
animation: 'fade'
});
Каждый экземпляр Tippy.js сохраняет ссылку на привязанный элемент и управляет его жизненным циклом отдельно.
Жизненный цикл Tippy.js можно разделить на несколько ключевых стадий:
tippy(button, {
onCreate(instance) {
console.log('Tippy создан:', instance);
}
});
mouseenter, focus или по явному вызову
show(). Перед отображением выполняются хуки
onShow и onTrigger:tippy(button, {
onShow(instance) {
console.log('Тултип показывается');
}
});
onMount:tippy(button, {
onMount(instance) {
console.log('Тултип смонтирован в DOM');
}
});
onHide и onUntrigger:tippy(button, {
onHide(instance) {
console.log('Тултип скрывается');
}
});
destroy() или автоматически при удалении элемента:tip.destroy();
| Метод | Описание |
|---|---|
show() |
Показать тултип программно |
hide() |
Скрыть тултип программно |
toggle() |
Переключение видимости |
destroy() |
Полное удаление экземпляра |
setContent(content) |
Изменение содержимого на лету |
setProps(props) |
Обновление настроек тултипа после создания |
Пример динамического обновления контента и позиции:
tip.setContent('Новый текст');
tip.setProps({ placement: 'bottom', animation: 'scale' });
tip.show();
Tippy.js предоставляет богатый набор событий, которые позволяют полностью контролировать поведение тултипа:
Использование хуков позволяет управлять не только отображением тултипа, но и динамическим контентом, логикой позиционирования, а также интеграцией с другими библиотеками.
Для динамического контента часто применяются функции, возвращающие Promise:
tippy(button, {
content: async () => {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return `Значение: ${data.value}`;
}
});
Tippy.js использует библиотеку Popper.js для расчёта положения тултипа. Важные моменты жизненного цикла, связанные с позиционированием:
popperInstance.update().tip.popperInstance.update();
onCreate)onTrigger)onShow)onMount)onShown)onHide)onHidden)onDestroy)Каждая стадия предоставляет возможность для тонкой настройки и контроля поведения тултипа, включая динамический контент, анимации и позиционирование.