В экосистеме JavaScript существует несколько библиотек и подходов для создания всплывающих подсказок и тултипов, которые могут служить альтернативой Tooltipster. Их выбор зависит от требований проекта: производительности, кастомизации, поддержки мобильных устройств и интеграции с современными фреймворками.
Tippy.js – одна из самых популярных библиотек для создания tooltip-элементов. Основные особенности:
Пример использования Tippy.js:
tippy('#button', {
content: 'Привет, я Tippy.js tooltip!',
placement: 'right',
animation: 'scale',
interactive: true
});
Popper.js является низкоуровневым инструментом для позиционирования элементов, включая тултипы.
Пример базового Popper.js:
const reference = document.querySelector('#button');
const tooltip = document.querySelector('#tooltip');
Popper.createPopper(reference, tooltip, {
placement: 'top',
modifiers: [
{
name: 'offset',
options: {
offset: [0, 10],
},
},
],
});
Bootstrap Tooltip встроен в популярный CSS-фреймворк Bootstrap. Подходит для проектов, уже использующих этот фреймворк.
Пример инициализации Bootstrap Tooltip:
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
Microtip – легковесная библиотека для простых тултипов, ориентированная на производительность и минимальный размер.
Пример использования Microtip:
<button aria-label="Tooltip текст" class="microtip" data-microtip-position="top">Hover me</button>
Для простых проектов часто используют комбинацию CSS и нативного JS.
Пример:
.tooltip {
position: absolute;
background: #333;
color: #fff;
padding: 5px 10px;
border-radius: 4px;
opacity: 0;
transition: opacity 0.3s;
pointer-events: none;
}
.tooltip.show {
opacity: 1;
}
const button = document.querySelector('#button');
const tooltip = document.querySelector('#tooltip');
button.addEventListener('mouseenter', () => {
tooltip.classList.add('show');
});
button.addEventListener('mouseleave', () => {
tooltip.classList.remove('show');
});
| Библиотека | Размер | Кастомизация | Анимации | Интерактивность | Зависимости |
|---|---|---|---|---|---|
| Tooltipster | ~20 KB | высокая | есть | есть | jQuery |
| Tippy.js | ~15 KB | очень высокая | есть | есть | Popper.js |
| Popper.js | ~9 KB | средняя | нет | нет | – |
| Bootstrap Tooltip | ~10 KB | средняя | есть | ограничено | Bootstrap |
| Microtip | ~2 KB | низкая | ограничено | нет | – |
| CSS + JS | 0 KB | максимальная | ограничено | зависит от кода | – |
Эти альтернативы позволяют выбрать подходящее решение для любого проекта, учитывая баланс между функциональностью, размером библиотеки и простотой интеграции.