Chart.js(折线图)工具提示 duration/delay

Chart.js (line chart) tooltip duration/delay

似乎没有任何选项或实现可以让工具提示在从悬停状态变为非悬停状态时消失之前显示一两秒钟。因此,当您将鼠标悬停在工具提示上时,很好,它会显示,但是当您将鼠标从该点移开时,我希望它再显示 2 秒,而不是像当前那样立即消失。

到目前为止我做了什么

有人可以为我指明正确的方向吗,我需要做什么才能在工具提示上实现这个 delay/fade 效果。

工具提示被 showTooltip 函数清除(重绘清除现有的工具提示)。所以一种天真的方法是挂钩这个来引入你的延迟,就像这样

var data = {
    labels: ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
    datasets: [
        {
            data: [12, 23, 23, 43, 45, 12, 33]
        }
    ]
};

var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).Line(data);

var originalShowTooltip = myLineChart.showTooltip;
var timeout;
myLineChart.showTooltip = function (activeElements) {
    var delay = (activeElements.length === 0) ? 2000 : 0;
    clearTimeout(timeout);
    timeout = setTimeout(function () {
        originalShowTooltip.call(myLineChart, activeElements);
    }, delay);
}

如果图表要清除所有工具提示,这会延迟工具提示。

请注意,如果您转到另一个工具提示,则删除旧工具提示不会有任何延迟。如果您希望这是延迟消失,则需要维护自己的活动点数组,以(立即)推入元素/弹出元素(延迟)


Fiddle - http://jsfiddle.net/zubynd0c/