Расширение Tooltips
Более подробная информация о расширении Tooltips доступна в статье Тултипы для элементов Gantt.
Объект tooltip
Объект tooltip доступен через gantt.ext.tooltips.tooltip. Он предоставляет методы для управления позицией, содержимым и видимостью тултипа:
- getNode (): HTMLElement - возвращает HTML-элемент тултипа
- setViewport (node): object - ограничивает позицию тултипа границами указанного HTML-элемента
- node - (HTMLElement) - HTML-элемент, в пределах которого будет отображаться тултип
- show (config, top): object - отображает тултип по заданным координатам (относительно document.body). Метод принимает различные параметры в зависимости от требуемой позиции. Для отображения тултипа по определённым координатам укажите значения x и y. Чтобы позиционировать тултип в месте события мыши, передайте объект Event. Параметры tooltip_offset_x/y и настройки viewport применяются автоматически.
- config? - (number | Event) - x-координата или объект события мыши
- top? - (number) - y-координата
- hide (): object - скрывает тултип
- setContent (html): object - задаёт HTML-содержимое тултипа
- html - (string) - HTML-строка для отображения в тултипе
Методы
Доступно несколько методов для управления поведением тултипа при наведении на элементы DOM.
gantt.ext.tooltips.attach()
- attach (config): void - добавляет тултип с подробной конфигурацией. Принимает один параметр:
- config - (object) - объект конфигурации тултипа, включая:
- selector - (string) - CSS-селектор для элементов, на которых отслеживаются события мыши
- onmouseenter - (Function): void - вызывается при наведении мыши на элемент, параметры:
- event - (MouseEvent) - нативное событие мыши
- node - (HTMLElement) - целевой HTML-элемент
- onmousemove? - (Function): void - необязательно, вызывается при движении мыши внутри элемента, параметры:
- event - (MouseEvent) - нативное событие мыши
- node - (HTMLElement) - целевой HTML-элемент
- onmouseleave - (Function): void - вызывается при уходе мыши с элемента, параметры:
- event - (MouseEvent) - нативное событие мыши
- node - (HTMLElement) - целевой HTML-элемент
- global? - (boolean) - необязательно, если true — слушает события мыши на всей странице; если false — только внутри элемента Gantt. По умолчанию false.
gantt.ext.tooltips.attach({
selector: ".gantt_task_cell",
onmouseenter: function (e, node) {
const id = node.parentNode.attributes['task_id'].nodeValue;
const task = gantt.getTask(id);
if (typeof task.text == "string") {
gantt.ext.tooltips.tooltip.setContent(task.text);
gantt.ext.tooltips.tooltip.show(e.clientX + 20, e.clientY + 20)
}
},
onmousemove: function (e, node) {
gantt.ext.tooltips.tooltip.show(e.clientX + 20, e.clientY + 20)
},
onmouseleave: function (e, node) {
gantt.ext.tooltips.tooltip.hide()
},
})
gantt.ext.tooltips.tooltipFor()
- tooltipFor (config): void - добавляет тултип к определённому элементу Gantt. Это упрощённая альтернатива attach(). Принимает один параметр:
- config - (object) - объект конфигурации, включает:
- selector - (string) - CSS-селектор элемента Gantt для привязки тултипа
- html - (Function): HTMLElement | string | number | void - функция, возвращающая содержимое тултипа. Получает:
- event - (Event) - нативное событие мыши
- node - (HTMLElement) - HTML-элемент, возвращает строку с содержимым тултипа
- global? - (boolean) - необязательно, если true — слушает на всей странице; если false — только внутри элемента Gantt. По умолчанию false.
gantt.ext.tooltips.tooltipFor({
selector: ".gantt_task_cell",
html: function (e, domElement) {
const id = domElement.parentNode.attributes['task_id'].nodeValue;
const task = gantt.getTask(id);
return task.text;
}
});
gantt.ext.tooltips.detach()
- detach (selector): void - удаляет тултип для указанного элемента. Принимает один параметр:
- selector - (string) - CSS-селектор элемента Gantt
К началу