Tooltipster — это мощная библиотека для создания кастомизируемых
всплывающих подсказок в JavaScript. Одним из наиболее удобных способов
задания содержимого для тултипов является использование стандартного
HTML-атрибута title. Это особенно полезно для быстрого
внедрения подсказок без необходимости создания дополнительных элементов
в DOM.
Для работы с Tooltipster необходимо подключить библиотеку и её CSS. Стандартная структура подключения выглядит так:
<link rel="stylesheet" type="text/css" href="tooltipster.bundle.min.css" />
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="tooltipster.bundle.min.js"></script>
После подключения библиотеки, тултипы инициализируются на выбранных
элементах с помощью метода .tooltipster():
$(document).ready(function() {
$('.tooltip').tooltipster();
});
Здесь все элементы с классом tooltip будут автоматически
обрабатывать контент из атрибута title.
titleTooltipster по умолчанию использует значение атрибута
title для отображения подсказки. Если элемент HTML имеет
такой код:
<button class="tooltip" title="Это подсказка">Наведи на меня</button>
то при наведении на кнопку появится всплывающая подсказка с текстом “Это подсказка”. Библиотека автоматически скрывает стандартный браузерный tooltip, заменяя его на кастомный.
contentAsHTMLЕсли требуется использовать HTML-разметку внутри атрибута
title, можно включить опцию contentAsHTML:
$('.tooltip').tooltipster({
contentAsHTML: true
});
Пример использования:
<button class="tooltip" title="<strong>Важное сообщение</strong><br>Дополнительная информация">Наведи на меня</button>
При этом HTML-теги будут корректно интерпретированы и отображены внутри тултипа, а не как текст.
titleЧтобы избежать появления двойного тултипа (стандартного браузерного и
Tooltipster), библиотека по умолчанию скрывает атрибут
title после инициализации. Это поведение можно
контролировать через опцию functionInit:
$('.tooltip').tooltipster({
functionInit: function(instance, helper) {
var content = $(helper.origin).attr('title');
instance.content(content);
$(helper.origin).removeAttr('title');
}
});
Такой подход полезен, если необходимо динамически изменять контент тултипа перед его отображением.
titleДля случаев, когда текст тултипа может изменяться во время работы
приложения, Tooltipster позволяет обновлять контент через метод
content:
$('.tooltip').tooltipster({
content: 'Изначальная подсказка'
});
// позже в коде
$('.tooltip').tooltipster('content', 'Обновлённая подсказка');
Если требуется, чтобы обновление происходило автоматически при
изменении атрибута title, можно использовать наблюдатель
MutationObserver:
$('.tooltip').each(function() {
var element = this;
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.attributeName === 'title') {
$(element).tooltipster('content', $(element).attr('title'));
}
});
});
observer.observe(element, { attributes: true });
});
title с различными типами элементовTooltipster одинаково эффективно работает с кнопками, ссылками,
изображениями и блоками div:
<a href="#" class="tooltip" title="Ссылка с подсказкой">Ссылка</a>
<img src="image.png" class="tooltip" title="Описание изображения" />
<div class="tooltip" title="Блок с информацией">Блок</div>
Для всех этих элементов достаточно инициализировать Tooltipster один
раз через селектор класса .tooltip.
Используя атрибут title в качестве источника, можно
дополнительно настраивать появление подсказки через опции:
$('.tooltip').tooltipster({
delay: 200, // задержка перед показом, мс
animation: 'fade', // тип анимации
theme: 'tooltipster-shadow', // тема оформления
contentAsHTML: true
});
Эти параметры помогают улучшить UX, делая подсказки более плавными и визуально привлекательными.
titletitle поддерживается всеми элементами HTML.Использование атрибута title остаётся самым удобным
способом добавления информационных подсказок в проектах с Tooltipster,
особенно для быстрого прототипирования и стандартизированных
интерфейсов.