s4i*_*inz 5 javascript chart.js
我正在将 chart.js 用于 Web 项目,并且运行良好。不过,我确实有一个问题。我正在尝试将具有 n 个数据点的折线图连接到 n 个 html div 的列表。当用户将鼠标悬停在数据点 2 上时,div 2 将突出显示并调用一个函数。那确实有效。但是,当用户取消悬停数据点 2 时,div 2 应将其样式更改回默认样式。
我的问题是:如何检测数据点上的 mouseout 事件?
这就是我定义数据点悬停时会发生什么的方式。
myChart = new Chart(ctx, {
type: 'line',
data: chartData,
options: {
title: {
...
},
tooltips: {
enabled: true,
custom: function(tooltip) {
if (!tooltip) {
return;
}
if(tooltip.dataPoints != null) {
// here, the function that highlights the respective div is called, and it works fine
}
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
有没有悬停的东西?我发现有一个全局事件 -> mousout 选项,但我不知道如何使用它,我还认为它引用了整个图表。
谢谢!
小智 6
不确定这是否对您有帮助,但我在堆积条形图方面遇到了类似的问题。我想在栏的顶部显示值,但我发现如果工具提示打开,则值会写在工具提示的顶部,使两者都不可读。我决定只在工具提示未显示时才显示值(如果工具提示打开则不呈现)。
结果我可以使用工具提示的不透明度设置来确定工具提示是否显示。这是非常简单的,但这是我想出的:
options: {
tooltips: {
custom: function( tooltip ) {
if( tooltip.opacity > 0 ) {
console.log( "Tooltip is showing" );
} else {
console.log( "Tooltip is hidden" );
}
return;
}
}
}
Run Code Online (Sandbox Code Playgroud)
解决了这个问题后,我就可以保存一个全局变量,我可以在其他地方测试它以查看工具提示是否显示。
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |