Tippy.js предоставляет гибкую систему триггеров для управления появлением всплывающих подсказок. Триггер — это событие, которое инициирует показ или скрытие тултипа. Библиотека поддерживает стандартные события браузера и позволяет комбинировать их для создания интерактивных интерфейсов.
По умолчанию Tippy.js использует триггер
mouseenter focus. Это означает, что тултип появляется при
наведении мыши на элемент или получении им фокуса (например, при
переходе по клавише Tab).
Пример стандартного использования:
tippy('#button', {
content: 'Пример тултипа'
});
Эквивалентно:
tippy('#button', {
content: 'Пример тултипа',
trigger: 'mouseenter focus'
});
click)Триггер click позволяет показывать и скрывать тултип по
клику на элемент. Часто используется для кнопок, всплывающих меню или
элементов управления.
tippy('#button', {
content: 'Тултип по клику',
trigger: 'click'
});
Особенности:
hideOnClick, чтобы контролировать
скрытие при клике вне элемента:tippy('#button', {
content: 'Тултип с контролем клика',
trigger: 'click',
hideOnClick: true
});
mouseenter / mouseleave)Триггеры mouseenter и mouseleave
обеспечивают поведение «появление при наведении, скрытие при уходе
мыши». Этот подход применим для подсказок, информирующих пользователя о
кнопках, ссылках или иконках.
tippy('#icon', {
content: 'Информационный тултип',
trigger: 'mouseenter'
});
При необходимости можно явно задать поведение скрытия через
mouseleaveили управлять задержкой через опцииdelay:
tippy('#icon', {
content: 'Тултип с задержкой',
trigger: 'mouseenter',
delay: [300, 100] // [появление, скрытие]
});
focus /
blur)Триггер focus полезен для элементов формы, таких как
input или textarea. Тултип появляется при фокусе и скрывается при потере
фокуса (blur).
tippy('#input', {
content: 'Введите данные',
trigger: 'focus'
});
Комбинированный подход с mouseenter позволяет показывать
подсказку как при наведении мыши, так и при фокусе:
tippy('#input', {
content: 'Подсказка при наведении и фокусе',
trigger: 'mouseenter focus'
});
Tippy.js поддерживает множественные триггеры, разделённые пробелами. Это позволяет одновременно использовать разные события для открытия тултипа.
tippy('#element', {
content: 'Множественные триггеры',
trigger: 'mouseenter click focus'
});
Пояснение:
mouseenter — открытие при наведении мыши.click — открытие по клику.focus — открытие при получении фокуса клавиатурой.Можно создавать собственные триггеры, используя методы API
show(), hide() или toggle()
тултипа. Это даёт полный контроль над поведением подсказки в
нестандартных сценариях.
const instance = tippy('#custom', {
content: 'Пользовательский триггер',
trigger: 'manual'
});
document.querySelector('#custom').addEventListener('dblclick', () => {
instance.show();
});
Особенности manual:
show(),
hide(), toggle().Для интерактивных элементов часто используют комбинацию
mouseenter focus с параметром
interactive: true. Это предотвращает закрытие тултипа при
перемещении курсора внутрь элемента подсказки.
tippy('#menu', {
content: 'Интерактивный тултип',
trigger: 'mouseenter focus',
interactive: true
});
Интерактивные тултипы особенно полезны для меню, форм и других элементов с вложенным контентом.
| Триггер | Описание |
|---|---|
mouseenter |
Появление при наведении мыши |
mouseleave |
Скрытие при уходе мыши |
focus |
Появление при фокусе элемента |
blur |
Скрытие при потере фокуса |
click |
Появление/скрытие по клику |
manual |
Полностью ручное управление через API |
mouseenter focus.focus с
опциональным mouseenter.click с
interactive: true.manual с
методами API.Tippy.js обеспечивает гибкую настройку триггеров, позволяя адаптировать поведение тултипов к любым интерфейсным задачам.