Tippy.js предоставляет мощный механизм для создания всплывающих подсказок (tooltips) и поповеров с гибкой настройкой. Одной из ключевых возможностей является возможность задания глобальных настроек по умолчанию, которые применяются ко всем создаваемым тултипам, если для конкретного экземпляра не указаны собственные опции.
setDefaultPropsДля изменения глобальных настроек используется метод
tippy.setDefaultProps(). Он позволяет определить объект с
параметрами, который будет автоматически применяться ко всем создаваемым
тултипам:
tippy.setDefaultProps({
placement: 'right',
animation: 'scale',
duration: [300, 200],
arrow: true,
theme: 'light'
});
В данном примере для всех тултипов будет установлено:
placement: 'right' — всплывающие подсказки будут
появляться справа от элемента.animation: 'scale' — анимация масштабирования при
появлении и исчезновении.duration: [300, 200] — продолжительность анимации
появления 300 мс и скрытия 200 мс.arrow: true — стрелка тултипа будет отображаться.theme: 'light' — светлая тема подсказки.placement — определяет расположение тултипа относительно целевого элемента. Возможные значения:
top, bottom, left,
righttop-start, top-end,
bottom-start, bottom-end и т. д.animation — тип анимации появления и исчезновения:
'fade' — плавное исчезновение'scale' — масштабирование'shift-away', 'shift-toward' — смещение
с/к элементуduration — массив
[showDuration, hideDuration] или единое число для обеих
анимаций.
arrow — отображение стрелки (true /
false). Можно использовать кастомные стрелки через
CSS.
theme — строка с именем темы. Tippy.js поддерживает кастомные CSS-темы через классы.
delay — задержка перед появлением и скрытием тултипа:
tippy.setDefaultProps({ delay: [500, 100] });
Где 500 мс — задержка перед показом, 100 мс — перед скрытием.
interactive — разрешает взаимодействие с
содержимым тултипа (true / false). Пример для
глобальной настройки всех тултипов с интерактивным содержимым:
tippy.setDefaultProps({ interactive: true });Если для отдельного тултипа требуется переопределение некоторых параметров, локальные настройки имеют приоритет над глобальными:
tippy('#myButton', {
content: 'Кнопка с индивидуальной подсказкой',
placement: 'bottom', // переопределяет глобальное 'right'
theme: 'dark' // отдельная тема
});
Таким образом, глобальные настройки обеспечивают единообразие внешнего вида и поведения тултипов по всей странице, но позволяют локально изменять отдельные свойства.
Использование setDefaultProps особенно полезно при
большом количестве тултипов на странице:
Для возврата к стандартным значениям Tippy.js можно использовать пустой объект:
tippy.setDefaultProps({});
После этого все новые тултипы будут создаваться с дефолтными параметрами библиотеки.
Использование глобальных настроек в Tippy.js позволяет значительно упростить управление большим количеством подсказок, сохраняя консистентность интерфейса и улучшая поддержку кода.