Deaktivieren Sie die Animation mit Charts.js

76

Ich habe Probleme beim Ausschalten der Animation mit charts.js.

Das ist mein Code:

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);

Kann jemand ein Beispiel geben?

Cronner
quelle

Antworten:

91
options: {
    animation: {
        duration: 0
    }
}
Palermuke
quelle
6
Viel sauberer Ansatz IMO als der undokumentierte animation: falseTrick. Wenn Sie durationauf 0Standbilder setzen, können Sie den options.animation.onComplete()Rückruf für benutzerdefinierte Zeichnungen im Diagramm verwenden, wenn das Rendern abgeschlossen ist.
Frosty Z
80
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);

Das sollte funktionieren ;)

Skrzypek
quelle
6
Wo ist options.animationin der Dokumentation aufgeführt? Weder chartjs.org/docs/latest/general/options.html und chartjs.org/docs/latest/configuration/animations.html einen boolean „erwähnen animation“ Eigenschaft.
Dai
2
@Dai Vergleichen Sie die 4 Jahre alte Antwort nicht mit der aktuellen Dokumentation.
Skrzypek
3
Aber Ihre Antwort funktioniert mit den aktuellen Versionen von ChartJS. Deshalb habe ich Ihnen eine positive Bewertung gegeben.
Dai
14

Versuche dies:

options: {
    animation: {
        duration: 0, // general animation time
    },
    hover: {
        animationDuration: 0, // duration of animations when hovering an item
    },
    responsiveAnimationDuration: 0, // animation duration after a resize
}
DungNH
quelle
9

Um zu verhindern, dass alle akzeptierten Antworten gelesen werden, die auf dieses bestimmte Beispiel antworten, deaktivieren Sie die Animation in Diagramm js:

Übergeben Sie ein Objekt in Ihren Optionen, wenn Sie den bestimmten Diagrammtyp initialisieren, und verwenden Sie das folgende Schlüssel / Wert-Paar : animation: false. z.BmyChart.Bar(myCanvas, {animation:false});

user3791372
quelle
7

Die folgenden 3 Optionen funktionieren zum Deaktivieren der Animation

1) Animation deaktivieren:

var myLine = Chart.Line(ctx, {
        data: lineChartData,
        options: {
           animation: false,
         }
        });

2) Reduzieren Sie die Animationsdauer um 0

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

3) Globale Option:

 Chart.defaults.global.animation = false;
    var myLine = Chart.Line(ctx, {
        data: lineChartData,
        options: {
         }
       });
Krishnamoorthy Acharya
quelle
4

Dies sollte den Trick tun:

    chartOption = {
        animation:{
            duration: 0
        }
    }
Rishabh Sharma
quelle
4
options{
    animation: false
}
Bibimission
quelle
4

Laut den Dokumenten ( https://www.chartjs.org/docs/latest/general/performance.html#disable-animations ) ist dies der Weg, um Animationen vollständig zu deaktivieren:

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
    }
});
artur.mazgarov
quelle