- bounty将在5天后过期**。回答此问题可获得+50声望奖励。Software Dev希望引起更多人关注此问题。
我在Chart.js中有一个条形图(使用最新版本),当鼠标悬停在类别标签上时,我想做一些视觉上的改变。我应该如何实现以下视觉上的改变?
1.将光标悬停在标签上时使其成为指针。
1.使标签在悬停时显示为不同的颜色。
这里有一个相关的问题:How to detect click on chart js 3.7.1 axis label?.不过,我的问题是关于悬停在一个标签上,而不是点击标签。
在下面的例子中,我希望当鼠标悬停在这些文本上时会发生一些事情:一米零一米零一米零一米零一米零一米零一米零一米零一米零二米零一米零。
window.onload = function() {
var ctx = document.getElementById('myChart').getContext('2d');
window.myBar = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Item A', 'Item B', 'Item C'],
datasets: [{
data: [1, 2, 3],
backgroundColor: 'lightblue'
}]
},
options: {
responsive: true,
indexAxis: 'y',
plugins: {
legend: {
display: false
},
tooltip: {
enabled: false
},
}
}
});
};
.chart-container {
position: relative;
height: 90vh;
}
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.2.0"></script>
<div class="chart-container">
<canvas id="myChart"></canvas>
</div>
3条答案
按热度按时间ncgqoxb01#
您可以使用该问题中的自定义插件,忽略除mousemove事件以外的所有事件,而不是忽略除click事件以外的所有事件:
ni65a41a2#
若要在将光标悬停在Chart.js条形图中的类别标签上时将光标更改为指针,可以将以下代码添加到图表选项中:
若要更改悬停在标签上时标签的颜色,可以将以下代码添加到图表选项中:
请注意,onHover函数用于检测鼠标何时悬停在标签上。函数内的代码将光标更改为指针或默认光标,并使用具有内联样式的HTML span标记将标签的颜色更改为红色。最后,在图表上调用update方法以应用更改。
4szc88ey3#
如果你对你的javascript代码做一些修改来解决你的任务,这将会有所帮助:
将图表上下文"
ctx
"更改为:改为:
要使光标在悬停在标签上时成为指针,可以尝试在触发悬停时为
event.native.target.style.cursor
分配CSS光标值。可以将该逻辑放入图表的options
(源代码)中的onHover
事件要使标签在悬停时显示为不同的颜色,您可以尝试在
ctx.onmousemove
回调函数中创建一个逻辑,并使用以下命令更改标签颜色:看看下面的代码:
感谢LeeLenalee给出了几乎正确的answer。我已经编辑了上面的代码,使其符合问题的要求。不要忘记将HTML中的库源代码更改为:
致:
更新代码:
一个9个1x一个10个1x一个11个1x