您可以将第二个系列作为垂直线,然后使用 setTimeout 和 setData 调用来操作该系列以匹配动画的帧速度(或者甚至更好地触发动画中的线条移动到下一帧)。
在这里看小提琴。
$(function () {
var someData = [];
var maxY = -9999, minY = 9999;
for (var i = 0; i < 60; i++)
{
var x = i;
var y = Math.random() * 10;
if (y < minY) minY = y;
if (y > maxY) maxY = y;
someData.push([x,y]);
}
chart = new Highcharts.Chart({
chart: {
renderTo: 'container'
},
xAxis: {
minPadding: 0.05,
maxPadding: 0.05
},
yAxis: {min: minY, max: maxY},
series: [{
data: someData
},
{
data: [[0,minY],[0,maxY]]
}]
});
moveLine = function(){
if (chart.series[1].data[0].x == 59){
x = 0;
}else{
x = chart.series[1].data[0].x + 1;
}
chart.series[1].setData([[x,minY],[x,maxY]]);
setTimeout(moveLine,1000);
}
setTimeout(moveLine,1000);
});