Chart.js条形图标签在悬停时被隐藏
Chart.js bar chart label gets hidden on hover
我有一个带有自定义弹出窗口的条形图,每个条形图上都有一个标签。问题是,当任何一个栏悬停在上面时,所有的标签都会消失。http://jsfiddle.net/s8yfqvdc/9/
我在文档中看不到任何对我有帮助的东西。
var context = document.getElementById('serviceLife').getContext('2d');
window.myObjBar2 = new Chart(context).Bar(barChartData2, {
scaleOverride: true,
scaleSteps: 10,
scaleStepWidth: 10,
scaleStartValue: 0,
barShowStroke: false,
barStrokeWidth: 0,
barValueSpacing: 2,
animation: false,
responsive: true,
tooltipTemplate: "<%if (label){%><%=label.tooltip%><%}%>",
maintainAspectRatio: true,
onAnimationComplete: function () {
var ctx = this.chart.ctx;
ctx.font = this.scale.font;
ctx.fillStyle = this.scale.textColor
ctx.textAlign = "center";
ctx.textBaseline = "bottom";
this.datasets.forEach(function (dataset) {
dataset.bars.forEach(function (bar) {
ctx.fillText(bar.value, bar.x, bar.y - 5);
});
})
}
});
我在这方面花了一些时间并解决了这个问题。
我从研究外延中得到的。。。
我将onAnimationComplete函数移到.extend:
Chart.types.Bar.extend({
name: "BarAlt",
draw: function () {
Chart.types.Bar.prototype.draw.apply(this, arguments);
var ctx = this.chart.ctx;
ctx.font = this.scale.font;
ctx.fillStyle = this.scale.textColor
ctx.textAlign = "center";
ctx.textBaseline = "bottom";
this.datasets.forEach(function (dataset) {
dataset.bars.forEach(function (bar) {
ctx.fillText(bar.value, bar.x, bar.y - 5);
});
})
}
});
http://jsfiddle.net/s8yfqvdc/10/
您可能需要创建一个简单的扩展,因为这似乎是Chart.js中的一个已知问题:请参阅答案。
相关文章:
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 在鼠标悬停处隐藏图像
- Chart.js条形图标签在悬停时被隐藏
- Jquery悬停功能显示和隐藏元素
- .onClick javascript 函数 - 悬停时隐藏
- 鼠标输入悬停分区显示/隐藏
- 在 mousenter(悬停)上,显示和隐藏(切换)子元素
- 悬停时不要隐藏元素
- JS事件CTRL+鼠标悬停+隐藏文本
- 如何在鼠标悬停按钮上显示或隐藏面板
- 显示和隐藏dt&dd悬停
- 悬停时滑入隐藏元素
- 父元素悬停/活动/聚焦时隐藏元素
- 如何使菜单容器在悬停两个元素以外的所有元素时隐藏
- 显示/隐藏&鼠标悬停Javascript
- 列表悬停大菜单隐藏无法选择
- 使用 JavaScript 显示和隐藏导航栏进行滚动和悬停功能
- 悬停图像时是否可以隐藏标题
- 在鼠标悬停时显示/隐藏菜单
- 如何显示/隐藏悬停在特定的元素