Chart.js - 如何在绘制图表之前显示加载动画

时间:2017-06-02 23:05:07

标签: jquery chart.js

我使用chart.js插件绘制折线图 我想在绘制图表之前显示加载。

我试过以下但没有发生任何事情 这里显示了jQuery错误:

  

未捕获的ReferenceError:未定义进度

但是在我的应用程序中它并没有显示错误。

如何在绘制图形之前显示动画或加载?
我使用semantic-ui作为css框架。

new Chart(document.getElementById("line-chart"),{
  type: 'line',
  data:{
    labels: [1500, 1600, 1700, 1750, 1800, 1850, 1900, 1950, 1999, 2050],
    datasets: [{
        data: [86, 114, 106, 106, 107, 111, 133, 221, 783, 2478],
        label: "Africa",
        borderColor: "#3e95cd",
        fill: false
      },{
        data: [282, 350, 411, 502, 635, 809, 947, 1402, 3700, 5267],
        label: "Asia",
        borderColor: "#8e5ea2",
        fill: false
      },{
        data: [168, 170, 178, 190, 203, 276, 408, 547, 675, 734],
        label: "Europe",
        borderColor: "#3cba9f",
        fill: false
      },{
        data: [40, 20, 10, 16, 24, 38, 74, 167, 508, 784],
        label: "Latin America",
        borderColor: "#e8c3b9",
        fill: false
      },{
        data: [6, 3, 2, 2, 7, 26, 82, 172, 312, 433],
        label: "North America",
        borderColor: "#c45850",
        fill: false
      }
    ]
  },
  options:{
    title:{
      display: true,
      text: 'World population per region (in millions)'
    },
    animation:{
      onProgress: function (animation){
        progress.value = animation.animationObject.currentStep / animation.animationObject.numSteps;
      }
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>

<canvas id="line-chart" ></canvas>

2 个答案:

答案 0 :(得分:3)

您好像是基于chartjs文档animations callbacks部分所示的代码。

该代码只是部分代码。页面上的链接已损坏,但这里是正确的完整代码:progress-bar example

onProgress属性上定义的函数在图表动画的每一步都被调用,因此用于填充进度条。应该先在代码中定义提供未定义错误的progress变量。在github链接上,它位于#26

答案 1 :(得分:0)

您正在查看的代码-chart.js“进度栏”示例,用于绘制图表时动画期间的进度条。

加载数据时需要有一个进度条,这是另一回事。因此,您正在查看错误的代码。

chart.js中的动画是对图表的绘制进行动画处理,而不是对数据的获取进行动画处理,这是一个用户问题,您到处都会发现很多示例代码。