工具提示扩展

有关工具提示扩展的更多信息,请参见文章 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) - 需要绑定工具提示的 Gantt 元素的 CSS 选择器
      • 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) - Gantt 元素的 CSS 选择器
Back to top