[解決済み] ホバーイベントをトリガーできないように、キャンバスからチャートをクリアするにはどうすればよいですか?
2022-06-26 20:32:51
質問
Chartjsを使ってラインチャートを表示していますが、問題なく動作しています。
// get line chart canvas
var targetCanvas = document.getElementById('chartCanvas').getContext('2d');
// draw line chart
var chart = new Chart(targetCanvas).Line(chartData);
しかし、問題はChartのデータを変更しようとしたときに発生します。 私は、新しいデータ ポイントで Chart の新しいインスタンスを作成することによってグラフを更新し、それによってキャンバスを再初期化しました。
これは問題なく動作します。しかし、新しいグラフの上にカーソルを置くと、古いグラフに表示されているポイントに対応する特定の場所にたまたま行った場合、カーソル/ラベルはまだトリガーされ、突然古いグラフが表示されます。 マウスがその位置にある間は表示されたままで、その位置から離れると消えてしまいます。 古いチャートを表示させたくない。完全に削除したいのです。
新しいチャートをロードする前に、キャンバスと既存のチャートの両方をクリアしようとしました。 ようなものです。
targetCanvas.clearRect(0,0, targetCanvas.canvas.width, targetCanvas.canvas.height);
と
chart.clear();
しかし、今のところどれもうまくいきません。 このようなことが起こらないようにする方法について、何かアイデアはありますか?
どのように解決するのですか?
私はこれで大きな問題を抱えました
まず、私は
.clear()
で、次に
.destroy()
で、チャート参照をnullに設定してみました。
最終的に問題を解決したのは
<canvas>
要素を削除し、新しい
<canvas>
を親コンテナに再適用する。
私の具体的なコード(もちろん、これを行う方法はいくらでもあります)。
var resetCanvas = function(){
$('#results-graph').remove(); // this is my <canvas> element
$('#graph-container').append('<canvas id="results-graph"><canvas>');
canvas = document.querySelector('#results-graph');
ctx = canvas.getContext('2d');
ctx.canvas.width = $('#graph').width(); // resize to parent width
ctx.canvas.height = $('#graph').height(); // resize to parent height
var x = canvas.width/2;
var y = canvas.height/2;
ctx.font = '10pt Verdana';
ctx.textAlign = 'center';
ctx.fillText('This text is centered on the canvas', x, y);
};
関連
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
vueにおけるv-forループオブジェクトのプロパティ
-
Vueのイベント処理とイベントモディファイアの解説
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
[解決済み】ExpressJS : res.redirect()が期待通りに動かない?
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された
-
[解決済み] 再描画のためにキャンバスをクリアする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン