В Tippy.js управление видимостью тултипов осуществляется через комбинацию опций конфигурации, событий и методов экземпляра. Основная задача — контролировать, когда и как всплывающее окно появляется и исчезает. Рассмотрим ключевые параметры и методы, влияющие на видимость.
trigger —
управление триггером появленияОпция trigger определяет, какие действия пользователя
вызывают отображение тултипа. Она принимает строку с одним или
несколькими значениями, разделёнными пробелом:
tippy('#button', {
content: 'Пример тултипа',
trigger: 'mouseenter focus'
});
mouseenter — появление при наведении мыши.focus — появление при фокусе на элементе (например,
через Tab).click — появление при клике.manual — отключает автоматические события. Видимость
управляется вручную через методы .show() и
.hide().Особенности manual триггера:
Используется для сложной логики отображения, когда нужно полностью
контролировать время появления тултипа через код.
Каждый тултип, созданный через tippy(), возвращает
объект с набором методов:
const tip = tippy('#button', {
content: 'Тултип'
})[0];
Основные методы:
.show() — принудительное отображение тултипа..hide() — скрытие тултипа..toggle() — переключение состояния видимости..disable() / .enable() — отключение или
включение возможности показывать тултип..setProps({...}) — динамическая смена параметров
тултипа, включая управление видимостью через опции.tip.show();
tip.setProps({ content: 'Новый текст' });
tip.hide();
visible —
статическая видимостьОпция visible позволяет принудительно установить
состояние видимости при инициализации:
tippy('#button', {
content: 'Видимый тултип',
visible: true
});
true отображает тултип сразу после
рендеринга.hideOnClick и
контроль скрытияПараметр hideOnClick отвечает за скрытие тултипа при
клике:
true — стандартное поведение (скрывается при клике на
элемент).false — тултип не закрывается при клике.'toggle' — клик по элементу переключает состояние
видимости.tippy('#button', {
content: 'Кликабельный тултип',
hideOnClick: 'toggle'
});
Tippy.js предоставляет hook’и событий, которые позволяют реагировать на изменение состояния:
onShow(instance) — перед показом тултипа.onShown(instance) — после появления.onHide(instance) — перед скрытием.onHidden(instance) — после скрытия.Пример использования:
tippy('#button', {
content: 'Событийный тултип',
onShow(instance) {
console.log('Тултип собирается показать');
},
onHidden(instance) {
console.log('Тултип скрыт');
}
});
Эти события полезны для анимаций, динамической подгрузки контента или изменения стилей в момент отображения.
interactive и delayОпция interactive делает тултип
«живым», позволяя пользователю взаимодействовать с его содержимым, не
скрывая его при уходе курсора:
tippy('#button', {
content: 'Интерактивный тултип',
interactive: true
});
Опция delay позволяет настроить
задержку перед показом или скрытием:
tippy('#button', {
content: 'Задержка показа',
delay: [500, 200] // 500ms до показа, 200ms до скрытия
});
tippy('#button', {
content: 'Клик активирует',
trigger: 'click',
interactive: true,
hideOnClick: false
});
const tip = tippy('#button', {
content: 'Ручное управление',
trigger: 'manual'
})[0];
// Показ через 2 секунды
setTimeout(() => tip.show(), 2000);
tippy('#button', {
content: 'Задержка и события',
delay: [300, 100],
onShow() { console.log('Показываем тултип'); },
onHidden() { console.log('Скрыли тултип'); }
});
При множественных тултипах важно учитывать параметр
singleton:
const tips = tippy('.buttons', {
content: 'Общий тултип'
});
tippy.createSingleton(tips, {
delay: 100,
moveTransition: 'transform 0.2s ease-out'
});
trigger — событие, инициирующее появление.manual — полное управление через методы.visible — начальное состояние видимости.hideOnClick — контроль скрытия по клику..show(), .hide(),
.toggle() — прямое управление.onShow, onHide,
onShown, onHidden — точечные реакции на
изменение состояния.interactive и delay — улучшение UX при
взаимодействии и плавность появления.Эти инструменты позволяют создавать сложные, динамические интерфейсы с полным контролем над видимостью тултипов.