0
グラフをクリックしたいチャートのChartをチャート上に表示し、グラフの中央にそのセグメントに関する情報を表示します。私はこの作業をしていますが、マウスがチャートセグメントを離れるたびに情報が消えるたびに、別のチャートセグメントがクリックされるまで情報が残るようにします。キャンバスにキャンバスを描画すると、マウスがチャートを離れるときにテキストが消去されます
私は、チャートの中央にテキストを維持するにはどうすればよいJSFIDDLE
canvas.onclick = function(evt) {
var activePoints = donut.getElementsAtEvent(evt);
if(activePoints[0]) {
var chartData = activePoints[0]['_chart'].config.data;
var idx = activePoints[0]['_index'];
var label = chartData.labels[idx].toUpperCase();
ctx.font = "bold 18px Verdana, Arial, sans-serif";
var textWidth = ctx.measureText(label).width;
ctx.fillStyle = "#000";
ctx.fillText(label, (250/2) - (textWidth/2), (250/2));
}
};
に本の基本的な例を入れていますか?
あなたはjsfiddleで働くことを得ることができますか?私は試してみましたが、何も違いはありません(https://jsfiddle.net/fa7s5q30/7/)。すべてのコードを 'afterDraw'に移動するとhttps://jsfiddle.net/fa7s5q30/8/になります。 – anothershrubery
確かに、私は私の答えを更新しました。 'afterDraw'は、グラフが再描画されるたびに呼び出されます(これはマウス移動でもあります)。そのため、選択したラベルをどこかに保存する必要があります。私はそれをグラフインスタンスに添付することを選択しました。 –
これはChromeでうまくいきますが、IE11ではグラフが表示されません。デバッガの問題にもフラグを立てません。どのような方法ラウンド? – anothershrubery