3
0

Новая версия tooltip

This commit is contained in:
2026-09-24 16:50:42 +04:00
parent c5a92339ec
commit f76c615286
3 changed files with 251 additions and 126 deletions

View File

@@ -33,7 +33,7 @@ createTooltip(document.querySelector('button'), 'Подсказка', {
[{ opacity: 1 }, { opacity: 0 }],
],
appendTo: document.body,
arrow: true,
arrow: { active: true, centered: false, padding: undefined },
delay: [0, 0],
duration: [0, 0],
easing: ['linear', 'linear'],
@@ -62,6 +62,26 @@ createTooltip(document.querySelector('button'), 'Подсказка', {
- `'all'` — всплывающая подсказка скрывается при клике по любому элементу на странице (**включая** саму всплывающую подсказку).
- `'toggle'` — всплывающая подсказка скрывается только при клике по элементу, который её вызывает.
#### arrow
Настройка отображения и позиционирования стрелки. Поддерживает булево значение (`true`/`false`) для обратной совместимости либо объект:
- `active` (`true`) — показывать ли стрелку. Эквивалент `arrow: true`/`arrow: false`.
- `centered` (`false`) — фиксировать стрелку по центру всплывающей подсказки, вместо того чтобы следовать за центром элемента, который её вызывает. Полезно, когда подсказка прижата к краю области видимости и стрелка смещается при прокрутке.
- `padding` (`undefined`) — отступ стрелки от краёв всплывающей подсказки. По умолчанию рассчитывается автоматически исходя из размера стрелки, чтобы её повёрнутые под 45° углы не выходили за границы подсказки.
```js
createTooltip(document.querySelector('button'), 'Подсказка', {
arrow: { active: true, centered: true },
});
```
Так же настраивается через data-атрибут:
```html
<button type="button" data-tooltip-arrow='{"centered":true}'>Кнопка</button>
```
##### virtualReference
Настройка используется для кастомного позиционирования, ожидает объект с методом `getBoundingClientRect`.