2016-10-14 51 views
0

我在SO上發現了類似的問題,但我的問題似乎有所不同。我用highstock鏈接的官方演示:http://www.highcharts.com/stock/demo/dynamic-updatehighcharts如何在數據更新後加載動畫?

在這裏,我修改了一些數據: VAR newData =(函數(){ VAR數據= [],時間=(新的Date())的getTime(),我; 爲(I = -199;我< = 0; I + = 1){ data.push([ 時間+ I * 1000, Math.round(的Math.random()* 100) ]); } return data; }()); $(function(){

Highcharts.setOptions({ 
    global: { 
     useUTC: false 
    } 
}); 
$('#container').highcharts('StockChart', { 
    chart: { 
     events: { 
     } 
    }, 
    rangeSelector: { 
     buttons: [{ 
      count: 1, 
      type: 'minute', 
      text: '1M' 
     }, { 
      count: 5, 
      type: 'minute', 
      text: '5M' 
     }, { 
      type: 'all', 
      text: 'All' 
     }], 
     inputEnabled: false, 
     selected: 0 
    }, 

    title: { 
     text: 'Live random data' 
    }, 

    exporting: { 
     enabled: false 
    }, 

    series: [{ 
     name: 'Random data', 
     data: (function() { 
      // generate an array of random data 
      var data = [], 
       time = (new Date()).getTime(), 
       i; 

      for (i = -999; i <= 0; i += 1) { 
       data.push([ 
        time + i * 1000, 
        Math.round(Math.random() * 100) 
       ]); 
      } 
      return data; 
     }()) 
    }] 
}); 
$('#button').click(function() { 
    var chart = $('#container').highcharts(); 
    chart.series[0].update({name: 'newName'}); 
    chart.series[0].setData(newData); 
}); 

});

單擊按鈕後,會生成新的圖表,但沒有加載動畫。我問這個問題是因爲我看到非常相似的問題解決了,任何人都可以幫助我?非常感謝,並在非常匆忙〜

+0

您可以刪除

您還可以添加使用系列PlotOptions時延長動畫s eries並添加一個新的 - 動畫將發生 - 請參閱[示例](http://jsfiddle.net/UTC6e/2/) – morganfree

回答

0

在你的代碼中,你只是設置新的數據到已經存在的圖表。

如果您想在點擊按鈕時創建新圖表,則必須在按鈕點擊功能中移動圖表創建。

plotOptions: { 
    series: { 
     animation: { 
     duration: 2000 
     } 
    } 
    }, 

例:

http://jsfiddle.net/xsmvkgse/2/

例無按鈕點擊:

http://jsfiddle.net/meh2b8rn/

+0

感謝分享jsfiddle。 hmn,是否有可能無需點擊按鈕就可以做到這一點? –

相關問題