yAxisでパンするための小さなコードを作成しましたが、少し遅いです。tickIntervalの値を大きくすると速くなります。ただし、欠点は、tickIntervalを大きくすると、tickIntervalサイズ未満でマウスをドラッグするとコードが奇妙に機能し始めることです(フィドルでtickIntervalを500に変更してから、マウスを1分ずつドラッグしてみてください。
jsfiddleへの私のリンク。
関連コード:
var mouseY;
$(chart.container)
.mousedown(function(event) {
mouseY=event.offsetY;
yData=chart.yAxis[0].getExtremes();
yDataRange=yData.max-yData.min;
isDragging=true;
})
.mousemove(function(e) {
var wasDragging = isDragging;
if (wasDragging) {
yVar=mouseY-e.pageY;
if(yVar!=0) {
yVarDelta=yVar/500*yDataRange;
chart.yAxis[0].setExtremes((yData.min-yVarDelta),(yData.max-yVarDelta));
}
}
})
.mouseup(function (e) {
isDragging = false;
});
また、誰かがピクセル(e.pageY)をy座標に変換するための代替ルートを提供できるかどうかも評価されます。コードでわかるように、現在私は回避策を実行しています。
編集私はこのjsfiddle に変換関数を含め、パンがmousemoveではなくmouseupでのみ発生するようにロジックを配置しました。私が現在直面している問題は、ドラッグがティック間隔よりも小さい場合、コードパンだけでなくズームも行うことです。yAxisの最小値と最大値の変化は、最小値はフロアで、最大値は天井で発生するため、これが発生していると推測されます。