このライブデモを参照してください:http://jsfiddle.net/kkulig/v078hLfq/
私はHighchartsコア内のいくつかの変更をしました。
デフォルトでは、ハイチャートはRMBイベントを完全に無視します。私はそれに責任を負うif
のステートメントをコメントアウトし、rmbClicked
フラグをチャートに設定しました。
H.Pointer.prototype.onContainerMouseDown = function(e) {
//if (e.button !== 2) {
this.chart.rmbClicked = (e.button === 2); // set flag on chart - used in drag()
は、その後、私はドラッグやパンを実行するかどうかをチェックするために上書きdrag
機能では、このフラグを使用:
if (!chart.rmbClicked) {
// make a selection
(...)
} else { // right mouse button clicked
// panning
最後に、私は、コンテキストメニューのイベントを無効:
// disable context menu on rmb click
H.wrap(H.Pointer.prototype, 'setDOMEvents', function(proceed) {
proceed.call(this);
this.chart.container.oncontextmenu = function(e) {
return false;
}
});
ハイチャートコアの変更についてのドキュメントページ:https://www.highcharts.com/docs/extending-highcharts/extending-highcharts
「panKey」はズームとパン(https://api.highcharts.com/highcharts/chart.panning)を切り替えるために使用されます。だからあなたが達成しようとしているのは、マウスの左ボタンをクリックしてズームし、マウスの右ボタンをクリックしてパンすることです。 –
そうです。そして、私はpanKeyが2つの間で切り替えることを理解しています。私はそこに "シフト"キーの代わりに人民元を使うことができるかどうか、あるいは他のやり方があるかどうかを知りたかったのです。 – murphy1310