2014-01-09 45 views
0

我有以下问题 - 我试图创建具有放大/缩小按钮的高炉图形,但缩放有些问题。然而,当我按下按钮的大部分时间,图表会放大到正确的时间间隔,然而,当我按下按钮几次后,图表开始变得很奇怪 - 动画不正确或者不缩放或它放大到错误的时间间隔。创建高炉放大/缩小按钮

这是缩放功能:

var xAxis = graphic.xAxis[0]; 
var minimum = xAxis.dataMin; 
var maximum = xAxis.dataMax; 

var newMin = 0; 
var newMax = 0; 

//when zooming out 

newMin = xAxis.min - 360000; 
newMax = xAxis.max + 360000; 

//when zooming in 

//newMin = xAxis.min - 360000; 
//newMax = xAxis.max + 360000; 

if (newMin < minimum) 
    newMin = minimum; 

if (newMax > maximum) 
    newMax = maximum; 

if (newMin > newMax) { 
    alert("min bigger than max"); 
} 

console.log("newMin: " + newMin + " newMax: " + newMax); 

xAxis.setExtremes(newMin, newMax);      

这里有一个小提琴:http://jsfiddle.net/E5kth/3/

  • jQuery的 - 1.6.4
  • jQuery的鼠标滚轮 - 3.1.6
  • highstock - 1.3.7

在此先感谢;]

编辑: 这是一个新的视频有问题的更好的解释:https://www.dropbox.com/s/5x1k5b0lbtqw81u/highstock_ordinal-false_bug_converted.avi 更好的质量 - 下载视频,Dropbox的流是低质量。

+0

尝试禁用动画,否则正在运行的动画没有完成,你会设置新的,错误的,极端:http://jsfiddle.net/E5kth/4/(第一个按钮) –

+0

好吧,我试过它与动画禁用,但我没有看到任何改变。同样在你提供它的小提琴仍然是越野车。 –

+0

不,不是,它的工作原理与我的预期完全相同(至少对我而言)。我建议你尝试使用禁用顺序轴的图表:http://jsfiddle.net/E5kth/5/ - 你有巨大的差距,所以有一段时间你试图缩放,但有一个差距。 –

回答

1

我准备了一个简单的例子,它应该怎么做,http://jsfiddle.net/3vB5B/。它从图表中获取范围,然后在24小时内缩小范围。

$('#btn').click(function(){ 

      var min = chart.xAxis[0].getExtremes().min, 
       max = chart.xAxis[0].getExtremes().max; 

      chart.xAxis[0].setExtremes((min + 12 * 3600 * 1000),(max - 12 * 3600 * 1000)); //12 hrs on min and 12hrs on max, summarised it is one day. 

}); 
+0

我更新了缩放功能以使用您的代码,但它仍然无法正常工作,可能是因为图形中的间隔 - http://jsfiddle.net/E5kth/7/。你的数据没有间隔,你有任何想法,如果间隔需要一些特定的代码? –