Для начала работы с Tooltipster необходимо подключить саму библиотеку и её стили. Существует несколько способов: через CDN или установку через npm/yarn.
Подключение через CDN:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tooltipster@4.2.8/dist/css/tooltipster.bundle.min.css" />
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.4/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/tooltipster@4.2.8/dist/js/tooltipster.bundle.min.js"></script>
Установка через npm:
npm install tooltipster
После этого подключение в проекте:
import 'tooltipster/dist/css/tooltipster.bundle.min.css';
import $ from 'jquery';
import 'tooltipster';
Инициализация выполняется на элементе, которому необходимо добавить подсказку. Базовый синтаксис:
$('.tooltip').tooltipster();
По умолчанию Tooltipster берёт текст подсказки из атрибута
title элемента:
<button class="tooltip" title="Это базовая подсказка">Кнопка</button>
Tooltipster предоставляет множество опций для настройки поведения подсказок. Ключевые параметры:
$('.tooltip').tooltipster({
content: $('<span>Содержимое HTML</span>'),
});
tooltipster-default) или можно
создавать собственные.$('.tooltip').tooltipster({
theme: 'tooltipster-noir',
});
$('.tooltip').tooltipster({
delay: 300,
});
'fade', 'grow', 'swing',
'slide', 'fall'.$('.tooltip').tooltipster({
animation: 'grow',
});
'hover',
'click', 'custom'.$('.tooltip').tooltipster({
trigger: 'click',
});
$('.tooltip').tooltipster({
interactive: true,
});
Tooltipster позволяет гибко управлять позицией подсказок относительно целевого элемента.
'top',
'bottom', 'left', 'right'.$('.tooltip').tooltipster({
side: 'right',
});
$('.tooltip').tooltipster({
functionPosition: function(instance, helper, position){
position.coord.top += 10; // смещение вниз на 10px
return position;
}
});
$('.tooltip').tooltipster({
maxWidth: 200,
});
Tooltipster позволяет использовать HTML в подсказках. Для этого
необходимо задать contentAsHTML: true.
$('.tooltip').tooltipster({
content: $('<div><strong>Важное сообщение</strong><br>Дополнительная информация</div>'),
contentAsHTML: true,
});
Это особенно полезно для создания подсказок с кнопками, ссылками или формами.
Tooltipster предоставляет методы для управления подсказками после инициализации:
$('.tooltip').tooltipster('open');
$('.tooltip').tooltipster('close');
$('.tooltip').tooltipster('destroy');
$('.tooltip').tooltipster('content', 'Новое содержимое');
Tooltipster генерирует события, которые позволяют отслеживать поведение подсказок:
Пример использования:
$('.tooltip').tooltipster().on('tooltipster-ready', function(event){
console.log('Подсказка отображена');
});
Tooltipster позволяет инициализировать несколько элементов одновременно:
$('.tooltip').tooltipster({
theme: 'tooltipster-light',
delay: 200
});
Каждый элемент может иметь собственный контент через атрибут
title или через data-tooltip-content для более
сложных HTML-подсказок:
<span class="tooltip" data-tooltip-content="#tooltip_content">Наведи меня</span>
<div class="tooltip_templates">
<span id="tooltip_content">HTML содержимое с кнопкой <button>Нажми</button></span>
</div>
Для страниц с большим количеством элементов рекомендуется:
delegation для динамических
элементов:$('body').tooltipster({
selector: '.tooltip',
theme: 'tooltipster-shadow',
});
Для подсказок, содержание которых зависит от состояния страницы или
внешних данных, применяются функции в content:
$('.tooltip').tooltipster({
content: 'Загрузка...',
functionBefore: function(instance, helper){
// асинхронная загрузка данных
fetch('/api/info')
.then(res => res.text())
.then(data => instance.content(data));
}
});
Это позволяет создавать подсказки с динамическим текстом, обновляемым при каждом открытии.
Этот набор инструментов и методов формирует базу для работы с Tooltipster, обеспечивая гибкое создание, кастомизацию и управление подсказками на веб-странице.