我有一个带有自定义弹出框的条形图,每个条形图上都有一个标签。问题是,当任何条形图悬停时,所有标签都会消失。 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);
});
})
}
});
答案 0 :(得分:2)
我花了一点时间来解决这个问题。
我从研究扩展中收集的内容......
我将 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);
});
})
}
});
答案 1 :(得分:1)
您可能需要创建一个简单的扩展程序,因为这似乎是Chart.js中的一个已知问题:see this answer。