Для работы с библиотекой Tippy.js необходимо подключить её файлы. Существует несколько способов:
Через CDN:
<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/dist/tippy.css">
<script src="https://unpkg.com/@popperjs/core@2"></script>
<script src="https://unpkg.com/tippy.js@6"></script>
@popperjs/core — обязательная зависимость для
позиционирования тултипов.tippy.js — сам функционал тултипов.tippy.css — базовые стили для отображения
подсказок.Через npm:
npm install tippy.js @popperjs/core
И подключение в проекте:
import tippy from 'tippy.js';
import 'tippy.js/dist/tippy.css';
Создание простого тултипа производится через функцию
tippy(). В качестве первого аргумента передаётся
CSS-селектор элемента, к которому будет привязан тултип, а вторым —
объект с настройками.
tippy('#myButton', {
content: 'Простая подсказка'
});
#myButton — селектор элемента.content — текст, отображаемый в тултипе.После этой команды при наведении на элемент с идентификатором
myButton появится подсказка.
Параметр placement отвечает за позиционирование тултипа
относительно элемента:
tippy('#myButton', {
content: 'Подсказка сверху',
placement: 'top' // top, bottom, left, right, top-start, bottom-end и т.д.
});
Популярные значения placement:
top — сверху.bottom — снизу.left — слева.right — справа.top-start / top-end — сверху с
выравниванием по краям.bottom-start / bottom-end — снизу с
выравниванием.По умолчанию тултип появляется при наведении
(mouseenter) и исчезает при уходе курсора
(mouseleave). Можно изменить поведение с помощью свойства
trigger:
tippy('#myButton', {
content: 'Триггер клик',
trigger: 'click' // hover, click, focus, manual
});
hover — стандартное поведение.click — появление при клике.focus — появление при фокусе (удобно для форм).manual — управление тултипом вручную через API.Tippy.js поддерживает анимации появления и скрытия тултипов. Свойство
animation позволяет выбрать стиль:
tippy('#myButton', {
content: 'Анимированная подсказка',
animation: 'scale', // fade, scale, shift-away, shift-toward
delay: [100, 200] // [задержка появления, задержка скрытия] в мс
});
animation — тип анимации.delay — массив из двух значений: время задержки перед
показом и перед скрытием.Помимо текста, тултип может содержать HTML. Для этого используется
опция allowHTML:
tippy('#myButton', {
content: '<strong>Жирный текст</strong> и <em>курсив</em>',
allowHTML: true
});
Важно: при использовании HTML следует убедиться, что контент безопасен, чтобы избежать XSS-уязвимостей.
Tippy.js позволяет сразу инициализировать несколько элементов с одинаковыми настройками:
tippy('.info-button', {
content: 'Информация о кнопке',
placement: 'right',
animation: 'shift-away'
});
Здесь все элементы с классом info-button получат
идентичный тултип.
Tippy.js возвращает объект тултипа, который позволяет управлять его состоянием программно:
const tip = tippy('#myButton', {
content: 'Управляемая подсказка'
})[0];
tip.show(); // Показать тултип
tip.hide(); // Скрыть тултип
tip.destroy(); // Удалить тултип полностью
Это удобно для динамических интерфейсов, где необходимо управлять видимостью подсказок без прямого взаимодействия пользователя.
content и
placement.allowHTML только с безопасным
контентом.delay и animation для
улучшения UX, чтобы подсказки не появлялись слишком резко.Эти базовые возможности создают основу для работы с Tippy.js и позволяют быстро внедрять на страницу интерактивные подсказки с гибкими настройками.