使用Charts.js禁用动画

Cro*_*ner 62 javascript charts

我在使用charts.js关闭动画时遇到了一些麻烦.

这是我的代码:

var pieData = [
    {
        value: 30,
        color:"#F38630"
    },
    {
        value : 50,
        color : "#E0E4CC"
    },
    {
        value : 100,
        color : "#69D2E7"
    }    
];

var myPie = new Chart(document.getElementById("canvas").getContext("2d")).Pie(pieData);
Run Code Online (Sandbox Code Playgroud)

谁能提供一个例子?

Skr*_*pek 75

var pieData = [{
    value: 30,
    color: "#F38630"
}, 
{
    value: 50,
    color: "#E0E4CC"
}, 
{
    value: 100,
    color: "#69D2E7"
}];

var pieOptions = {
    animation: false
};

var ctx = document.getElementById("canvas").getContext("2d");
var myPie = new Chart(ctx).Pie(pieData, pieOptions);
Run Code Online (Sandbox Code Playgroud)

这应该工作;)

  • 文档中列出了`options.animation`在哪里?http://www.chartjs.org/docs/latest/general/options.html和http://www.chartjs.org/docs/latest/configuration/animations.html都没有提到布尔"动画"属性. (4认同)
  • 但是您的答案确实适用于当前版本的 ChartJS,这就是我给您投票的原因。 (3认同)
  • @Dai 不要将 4 年前的答案与当前文档进行比较。 (2认同)
  • https://www.chartjs.org/docs/latest/configuration/animations.html#:~:text=禁用%20动画,设置%20%20duration%20到%200%20。&text=已复制! (2认同)

pal*_*uke 67

options: {
    animation: {
        duration: 0
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 与未记录的“动画:错误”技巧相比,使用IMO的方法要干净得多。将渲染的持续时间设置为0静止图像后,渲染完成后,就可以对图表上的自定义图纸使用options.animation.onComplete()回调。 (3认同)

小智 9

根据文档(https://www.chartjs.org/docs/latest/general/performance.html#disable-animations)这里是完全禁用动画的方法:

new Chart(ctx, {
    type: 'line',
    data: data,
    options: {
        animation: {
            duration: 0 // general animation time
        },
        hover: {
            animationDuration: 0 // duration of animations when hovering an item
        },
        responsiveAnimationDuration: 0 // animation duration after a resize
    }
});
Run Code Online (Sandbox Code Playgroud)


use*_*372 8

为了防止阅读回答该特定示例的所有已接受的答案,要禁用图表js中的动画:

在初始化特定图表类型时传递选项中的对象并使用以下键/值对:animation: false.例如myChart.Bar(myCanvas, {animation:false});


Dun*_*gNH 7

尝试这个:

options: {
    animation: {
        duration: 0, // general animation time
    },
    hover: {
        animationDuration: 0, // duration of animations when hovering an item
    },
    responsiveAnimationDuration: 0, // animation duration after a resize
}
Run Code Online (Sandbox Code Playgroud)


小智 5

这应该可以解决问题:

    chartOption = {
        animation:{
            duration: 0
        }
    }
Run Code Online (Sandbox Code Playgroud)


Kri*_*rya 5

您好,以下3个选项可用于禁用动画

1)禁用动画:

var myLine = Chart.Line(ctx, {
        data: lineChartData,
        options: {
           animation: false,
         }
        });
Run Code Online (Sandbox Code Playgroud)

2)减少动画持续时间为0

var myLine = Chart.Line(ctx, {
        data: lineChartData,
        options: {   
            animation: {
                duration: 0,
            },
         });
Run Code Online (Sandbox Code Playgroud)

3)全局选项:

 Chart.defaults.global.animation = false;
    var myLine = Chart.Line(ctx, {
        data: lineChartData,
        options: {
         }
       });
Run Code Online (Sandbox Code Playgroud)


BBl*_*kwo 5

这也可以在全球范围内完成:

Chart.defaults.global.animation.duration = 0

通过:https : //www.chartjs.org/docs/latest/configuration/animations.html#animation-configuration