Chartjs - onAnimationComplete在动画实际完成之前触发

时间:2016-06-09 15:29:47

标签: javascript jquery chart.js

我的问题是事件onAnimationComplete在图表实际完成绘图之前触发。

我使用的是ASP.NET MVC。

这是我的代码:

HTML:

<canvas id="scanedTodayChart" width="100" height="100"></canvas>

JS:

var scanedTodayChartCtx = document.getElementById("scanedTodayChart").getContext("2d");
var scanedTodayChart = new Chart(scanedTodayChartCtx, {
    type: 'pie',

    data: {
        labels: [
            "Red",
            "White",
        ],
        datasets: [
        {
            data: [10, 100],
            backgroundColor: [
                "#DA1A32",
                "#F0FFFF"
            ],
            borderWidth: false,
            borderColor: false
        }]
    },
    options: {
        cutoutPercentage: 90,
    },
    borderColor: '#DA1A32',
    fullWidth: true,
    onAnimationComplete: new function () {
        alert('onAnimationComplete')
    }
});

1 个答案:

答案 0 :(得分:7)

我认为你没有定义动画。在this example处找到Chart.js documentation

var scanedTodayChart = new Chart(scanedTodayChartCtx, {
    type: 'pie',

    data: {
        labels: [
            "Red",
            "White",
        ],
        datasets: [
        {
            data: [10, 100],
            backgroundColor: [
                "#DA1A32",
                "#F0FFFF"
            ],
            borderWidth: false,
            borderColor: false
        }]
    },
    options: {
        cutoutPercentage: 90,
        animation: {
            duration: 2000,
            onProgress: function(animation) {
                $progress.attr({
                    value: animation.animationObject.currentStep / animation.animationObject.numSteps,
                });
            },
            onComplete: function(animation) {
                alert('onAnimationComplete')
            }
        }
    },
    borderColor: '#DA1A32',
    fullWidth: true,
});