我在yAxis中做了一個用於平移的小代碼,但它有點慢。如果我增加tickInterval的值,它會變得更快。但缺點是,隨着tickInterval的增加,當我拖動鼠標使其小於tickInterval大小時,代碼開始工作(嘗試在我的提琴中將tickInterval更改爲500,然後將鼠標拖動一分鐘,然後將鼠標拖動到一分鐘。HighCharts:在yAxis中的平移發生得太慢
我的鏈接。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包括翻譯功能,並把邏輯,這樣的平移只發生在mouseup而不是在mousemove。我目前面臨的問題是,如果拖動小於滴答間隔時間,不僅代碼平移,而且縮放。我認爲它的發生是因爲yAxis最小值和最大值的變化發生在最小值和最大值上限處。
是否有可能具有雙軸,我們只能平移y軸中的一個,而不會影響另一個軸? – Muhaimin 2014-07-01 04:46:36
我不確定你在問什麼。也許你應該提出一個完整的問題,並詳細說明你正在嘗試做什麼,以及你已經嘗試了什麼。 – SteveP 2014-07-01 07:34:03
我是新來的高圖javascript。我沒有樣品可以展示它。但是我看到一個圖表有兩個Y軸,左右。我可以上下拖動一個軸而不影響另一個軸。 – Muhaimin 2014-07-01 07:49:28