我認爲這是可能的,但這並不容易。
正如你寫的,你應該開始檢測拖動&下降。使用內置選項是不可能的,但我們可以添加我們自己的事件偵聽器。看看下面的代碼:
new Highcharts.StockChart({
// here comes your chart options, but we can pass callback function as the second parameter
}, function (chart) {
var report = document.getElementById('report'), // just an element to display current extremes
xAxis = chart.xAxis[0],
startX;
function drag(e) {
e = chart.tracker.normalizeMouseEvent(e);
startX = e.chartX;
}
function drop(e) {
e = chart.tracker.normalizeMouseEvent(e);
var delta = e.chartX - startX,
extremes = xAxis.getExtremes(),
newMin = Math.round(extremes.min - delta),
newMax = Math.round(extremes.max - delta);
// display extremes retrieved by panning
report.innerHTML = "<b>From:</b> " + new Date(newMin) + " <b>to:</b> " + new Date(newMax);
}
// bind events
Highcharts.addEvent(chart.container, 'mousedown', drag);
Highcharts.addEvent(chart.container, 'mouseup', drop);
});
只要我們檢測到鼠標按下& mouseUp事件事件,然後計算出差異,翻譯差X數據,最後,從極端的差異。減去。
在這裏你可以找到的代碼的jsfiddle演示上面貼:http://jsfiddle.net/dSEAA/1/
這對於非常有幫助的感謝,我們是不是應該去 – hcharge 2013-02-20 16:04:46
chart.tracker不再Highcharts工作:(有另一種方式來標準化事件? – 2018-01-26 17:22:30