2016-05-04 39 views
0

棒グラフの各棒には、カスタムポップアップが表示されています。問題は、バーが上に乗ると、すべてのラベルが消えてしまうことです。 http://jsfiddle.net/s8yfqvdc/9/Chart.js棒グラフのラベルがホバーで非表示になる

私はドキュメントの中で私を助けてくれるものはありません。

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); 
      }); 
     }) 
    } 
}); 

答えて

1

これはChart.jsの既知の問題のようですので、あなたはおそらく、簡単な拡張機能を作成する必要があります:see this answer

+0

は、あなたがバーでこれを行う方法を知っていますか:私は拡張子を研究から集められた何

...

は私が.extendへonAnimationComplete機能を移動しましたチャート?私はこの拡張機能が何をしているのか本当に理解していません。 – dchadney

2

私はこれに少し時間を費やして問題を解決しました。

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/

関連する問題