Tippy.js — это лёгкая и мощная библиотека для создания подсказок и тултипов на веб-страницах. Подключение через CDN позволяет быстро интегрировать библиотеку без необходимости установки через npm или сборщиков модулей.
Для работы Tippy.js через CDN необходимо подключить CSS для стилизации тултипов и JavaScript для функционала.
<!-- CSS Tippy.js -->
<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/dist/tippy.css" />
<!-- Popper.js (зависимость Tippy.js) -->
<script src="https://unpkg.com/@popperjs/core@2/dist/umd/popper.min.js"></script>
<!-- JS Tippy.js -->
<script src="https://unpkg.com/tippy.js@6/dist/tippy-bundle.umd.min.js"></script>
Примечания:
tippy.css обеспечивает базовую стилизацию
тултипов.tippy-bundle.umd.min.js содержит весь функционал
библиотеки в одном файле для использования через
<script>.После подключения файлов через CDN можно создавать подсказки для
элементов страницы. Для этого используется функция
tippy().
<button id="example">Наведите на меня</button>
<script>
tippy('#example', {
content: 'Простая подсказка',
placement: 'right', // Позиция тултипа относительно элемента
animation: 'scale', // Анимация появления
});
</script>
Ключевые моменты:
top,
bottom, left, right,
auto.scale, fade, shift-away и
др.).Можно инициализировать тултипы на нескольких элементах за один вызов:
<button class="tooltip-btn" data-tooltip="Тултип 1">Кнопка 1</button>
<button class="tooltip-btn" data-tooltip="Тултип 2">Кнопка 2</button>
<script>
tippy('.tooltip-btn', {
content(reference) {
return reference.getAttribute('data-tooltip');
},
placement: 'top',
animation: 'fade',
});
</script>
Особенности:
content(reference) позволяет динамически
получать содержимое подсказки.Tippy.js поддерживает HTML внутри подсказок, что расширяет возможности оформления.
<button id="html-tooltip">HTML Тултип</button>
<script>
tippy('#html-tooltip', {
content: `<strong>Жирный текст</strong><br>и новая строка`,
allowHTML: true, // Включение HTML
placement: 'bottom',
});
</script>
Важно: allowHTML: true обязательно для
отображения HTML-содержимого.
Tippy.js через CDN предоставляет API для управления подсказками после их инициализации:
<button id="manual">Показать тултип вручную</button>
<script>
const instance = tippy('#manual', {
content: 'Я управляюсь вручную',
trigger: 'manual' // отключение стандартных событий hover/focus
});
document.getElementById('manual').addEventListener('click', () => {
instance.show();
setTimeout(() => instance.hide(), 2000);
});
</script>
Особенности:
trigger: 'manual' отключает стандартное появление
тултипа.show(), hide(),
destroy() позволяют управлять жизненным циклом подсказки
программно.Можно подключать кастомные темы для тултипов без сборщика модулей:
<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/themes/light.css" />
<button id="custom-theme">Светлая тема</button>
<script>
tippy('#custom-theme', {
content: 'Подсказка со светлой темой',
theme: 'light',
});
</script>
Ключевые моменты:
light, dark,
translucent.content(reference) и allowHTML.trigger: 'manual' и методы экземпляра.Эти правила позволяют максимально использовать возможности Tippy.js при подключении через CDN без установки дополнительных пакетов.