2015-07-28 101 views
1

在从悬停状态转为非悬停状态之前,似乎没有任何选项或实现在显示工具提示一两秒钟之前消失。所以,当你的鼠标悬停在工具提示上时,它会显示,但是当你将鼠标从点上移开时,我希望显示额外的2秒,而不是像当前那样立即消失。Chart.js(折线图)工具提示持续时间/延迟

我所做到目前为止

  • 我已经通过文件和可用工具提示选项看去。它有一个customTooltip函数可用,但是当你想实现一个完全自定义的工具提示时。
  • 通过chart.js线条图的代码库,它附加了事件,似乎无法弄清楚如何添加延迟。
  • 看到'mouseout','mouseover'事件数组字符串列表,但似乎无法弄清楚如何使用它们。

有人可以请我指出正确的方向,我需要做什么在工具提示上实现这种延迟/淡入效果。

回答

1

工具提示被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); 
} 

如果图表是要清除掉所有的提示这会延迟提示。

请注意,如果移动到另一个工具提示,则不会延迟删除旧的工具提示。如果你希望它这是一个延迟消失,你需要维护自己的活跃点中的元素(瞬间)推阵列/飞出元素(有延迟)


小提琴 - http://jsfiddle.net/zubynd0c/