动画

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

动画配置

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

名称 类型 默认值 描述
duration Number 1000 动画所需的毫秒数
easing String 'easeOutQuart' Easing 更多...
onProgress Function null 每一步动画的回调 更多...
onComplete Function null 动画结束后回调 更多...

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实例:

{
    // Chart 对象
    chart: Chart,

    // 当前动画帧数
    currentStep: Number,

    // 动画帧数
    numSteps: Number,

    // easing动画使用
    easing: String,

    // 绘制图表
    render: Function,

    // 使用回调
    onAnimationProgress: Function,

    // 使用回调
    onAnimationComplete: Function
}

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

var chart = new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        animation: {
            onProgress: function(animation) {
                progress.value = animation.animationObject.currentStep / animation.animationObject.numSteps;
            }
        }
    }
});

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

results matching ""

    No results matching ""