2017-12-20 2 views
0

次の仕様のハイチャートチャートがあります。ハイチャート|チャートズーム&スパン| LMBとスパンで拡大(RMBで

chart: { 
    zoomType: 'xy', 
    panKey: 'shift', 
    panning: true 
} 

私の懸念は 'panKey'です。

キーボードの「シフト」キーの代わりに「マウスの右ボタン」にパンコントロールをリンクするにはどうすればよいですか?

参考にしてください。
http://jsfiddle.net/mqutcruw/23/

「クリックイベント」が登録されている例がありますが、どのように使用できるかわかりません。 (https://jsfiddle.net/BlackLabel/Utx8g/?utm_source=website&utm_medium=embed&utm_campaign=Utx8g

+0

「panKey」はズームとパン(https://api.highcharts.com/highcharts/chart.panning)を切り替えるために使用されます。だからあなたが達成しようとしているのは、マウスの左ボタンをクリックしてズームし、マウスの右ボタンをクリックしてパンすることです。 –

+0

そうです。そして、私はpanKeyが2つの間で切り替えることを理解しています。私はそこに "シフト"キーの代わりに人民元を使うことができるかどうか、あるいは他のやり方があるかどうかを知りたかったのです。 – murphy1310

答えて

1

このライブデモを参照してください: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

+0

ニート!ありがとう!.. – murphy1310

関連する問題