2017-08-14 87 views
0

当创建在AmCharts(例如:http://jsfiddle.net/amcharts/ATQUm/)活图表 看来,当一个触发this.state.chart.validateData()滚动条的范围是被重置为全范围,除非用户点击并保持向下滚动条处于相同的位置。饲养滚动

有没有办法保持该范围,因为数据正在更新,而无需按下按钮?

回答

1

假设您希望日期选择在更新之间保持不变,您可以在图表对象中将zoomOutOnDataUpdate设置为false,并且滚动条将保持在选定的日期范围内;例如,如果您在2017-07-01到2017-08-01之间放大,该日期范围仍将保留在更新之间。

Demo

如果你滑旧点过图表就像在演示中,然后zoomOutOnDataUpdate完全不是那么回事了,UI明智的,因为日期范围最终会脱落的点被删除,因为在上面的演示中你可能会注意到(右侧滚动条手柄缓慢向左移动)。在这种情况下,你要保持图表的当前startIndexendIndex和打电话给你更新后zoomToIndexes,即

var startIndex = chart.startIndex; 
    var endIndex = chart.endIndex; 
    chart.validateData(); 
    chart.zoomToIndexes(startIndex, endIndex); 

Demo

仅供参考,您链接小提琴使用AmCharts的旧版本(V2 )。我的小提琴使用最新的v3版本。