动画

Chart.js开箱即用动画图表。提供了许多选项来配置动画的外观以及动画时间。

动画配置

以下为全局选项,在Chart.defaults.global.animation中定义。

名称类型默认值描述
durationNumber1000动画所需的毫秒数
easingString'easeOutQuart'Easing 更多…
onProgressFunctionnull每一步动画的回调 更多…
onCompleteFunctionnull动画结束后回调 更多…

Easing

可用选项:

  • 'linear'
  • 'easeInQuad'
  • 'easeOutQuad'
  • 'easeInOutQuad'
  • 'easeInCubic'
  • 'easeOutCubic'
  • 'easeInOutCubic'
  • 'easeInQuart'
  • 'easeOutQuart'
  • 'easeInOutQuart'
  • 'easeInQuint'
  • 'easeOutQuint'
  • 'easeInOutQuint'
  • 'easeInSine'
  • 'easeOutSine'
  • 'easeInOutSine'
  • 'easeInExpo'
  • 'easeOutExpo'
  • 'easeInOutExpo'
  • 'easeInCirc'
  • 'easeOutCirc'
  • 'easeInOutCirc'
  • 'easeInElastic'
  • 'easeOutElastic'
  • 'easeInOutElastic'
  • 'easeInBack'
  • 'easeOutBack'
  • 'easeInOutBack'
  • 'easeInBounce'
  • 'easeOutBounce'
  • 'easeInOutBounce'
    参考 Robert Penner's easing equations.

动画回调

onProgressonComplete回调对于外部操作同步到图表动画,回调传递一个Chart.Animation实例:

  1. {
  2. // Chart 对象
  3. chart: Chart,
  4. // 当前动画帧数
  5. currentStep: Number,
  6. // 动画帧数
  7. numSteps: Number,
  8. // easing动画使用
  9. easing: String,
  10. // 绘制图表
  11. render: Function,
  12. // 使用回调
  13. onAnimationProgress: Function,
  14. // 使用回调
  15. onAnimationComplete: Function
  16. }

以下示例在图表动画期间填充进度条。

  1. var chart = new Chart(ctx, {
  2. type: 'line',
  3. data: data,
  4. options: {
  5. animation: {
  6. onProgress: function(animation) {
  7. progress.value = animation.animationObject.currentStep / animation.animationObject.numSteps;
  8. }
  9. }
  10. }
  11. });

这些回调的另一个例子可以在Github上找到:该示例显示一个进度条,显示动画的距离。