我有一个highstock图表,使用ajax请求显示传感器数据。 每次在xAxis上更改极值时,我都会从服务器加载相关数据并显示它。 在页面上,我还有两个dateTime控件,用于选择要从中查看数据的期间的开始和结束日期。
现在我遇到的问题是,当我设置为11/28/2012并且也结束到11/28/2012并且我滚动(最小范围是1天)时,用户可以滚动出所选范围我试图禁止。
我找不到任何有用的示例或解决方案。
我尝试设置chart.navigator.xAxis.min和max,也尝试设置chart.xAxis.min和max但这不起作用...
自己看看: http://carbocount.wikidot.com/project:products:visualization
答案 0 :(得分:1)
我设法自己修复了这个问题。
在afterSetExtremes
事件中,如果范围介于所选时间段之间,我使用e.dataMin
和e.dataMax
检查了极值。我没有重置极端:
// if the user tries to zoom outside of the selected time period
// cancel the event and reset extremes
var extremesReset = false;
if (e.dataMin < plotStart.getTime()) {
e.dataMin = plotStart.getTime();
extremesReset = true;
}
if (e.dataMax > plotEnd.getTime()) {
e.dataMax = plotEnd.getTime();
extremesReset = true;
}
var chart = $('#plot').highcharts();
if (extremesReset)
chart.xAxis[0].setExtremes(e.dataMin, e.dataMax);