Animation-timing-function - Propriété CSS

animation-timing-function

Résumé des caractéristiques de la propriété animation-timing-function

Description rapide
Définit la fonction d'accélération à utiliser pendant une animation.
Statut
Standard
Utilisable sur
HTML
Valeurs prédéfinies
ease | ease-in | ease-out | ease-in-out | linear
Pourcentages
Ne s'appliquent pas.
Valeur initiale
ease
Héritée par défaut
Non.
Type d'animation
Not animable : la propriété animation-timing-function ne peut pas être animée.
Module W3C
Module CSS - Animations
Références (W3C)
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: WD (document de travail)

Schéma syntaxique de animation-timing-function.

animation-timing-function - Syntax DiagramSyntax diagram of the animation-timing-function CSS property. See stylescss.free.fr for details. linear linear ease ease ease-in ease-in ease-out ease-out ease-in-out ease-in-out steps() steps() cubic-bezier() cubic-bezier() , ,animation-timing-function:;animation-timing-function:;
Schéma syntaxique de la propriété animation-timing-function
Cliquez sur le schéma pour plus de détails sur les valeurs

Description.

Définit la dynamique de l'animation. Par exemple, l'animation peut commencer doucement et se terminer rapidement, ou vice-versa, ou au contraire se faire avec une vitesse constante.

Remarque : animation-timing-function peut aussi être employé dans la syntaxe de @keyframes, ce qui permet de définir une dynamique différente pour chacune des étapes de l'animation.

Pour une présentation générale sur les animations, reportez-vous à la page décrivant la propriété résumée animation.

Syntaxes pour animation-timing-function.

  • animation-timing-function: ease;

    Valeur par défaut. L'animation démarre lentement, accélère progressivement, prend sa vitesse normale et ralentit avant de se terminer.

  • animation-timing-function: linear;

    La vitesse de l'animation est constante pendant toute sa durée.

  • animation-timing-function: ease-in;

    L'animation démarre doucement jusqu'à sa vitesse normale, puis garde une vitesse constante jusqu'à la fin.

  • animation-timing-function: ease-out;

    L'animation démarre à sa vitesse normale et ralentit avant de se terminer.

  • animation-timing-function: ease-in-out;

    L'animation démarre et se termine lentement.

  • animation-timing-function: steps(9 end); n f

    L'animation est jouée par saccades, ici en 9 étapes. Un deuxième paramètre f peut être précisé. Il détermine laquelle des étapes sera invisible (temps d'exécution à 0). Par défaut c'est la dernière.
    Notez les valeurs step-start et step-end qui sont des syntaxes raccourcies équivalentes respectivement à steps(1,start) et à steps(1,end).
    Reportez-vous à la description de la fonction steps() pour plus de précisions.

  • animation-timing-function: cubic-bezier(n,n,n,n);

    Définit une courbe de Bézier à partir de 4 valeurs numériques. La vitesse de l'animation sera calquée sur cette courbe.
    Voir une description plus complète de la fonction cubic-bezier().

  • animation-timing-function: linear, ease-in, ...;

    Comme pour les autres propriétés relatives aux animations, il est possible de définir une série de valeurs séparées par des virgules, dans le cas où plusieurs animations ont été définies.
    Pour plus de précisions sur les animations multiples, consultez la page animation.

Valeurs universelles :

animation-timing-function: initial (ease) animation-timing-function: inherit animation-timing-function: revert animation-timing-function: revertLayer animation-timing-function: unset

Liens vers la présentation de ces valeurs : initial, inherit, revert, revert-layer, unset.

Remarque sur cubic-bezier(n,n,n,n).

Cette syntaxe permet d'ajuster très précisément la vitesse et l'accélération de l'animation pour se rapprocher d'un mouvement réaliste mais les 4 valeurs numériques ne sont pas évidentes à déterminer.

Reportez-vous à cet outil, particulièrement pratique, pour calculer ces paramètres : concepteur de courbe de Bezier.

Manipulation de la propriété animation-timing-function par programme.

Modifier la valeur de animation-timing-function en Javascript.

On voit que Javascript propose une syntaxe avec la notation typique de CSS, en kebab-case (un tiret pour séparer les mots), et une autre syntaxe avec une notation plus courante en JS : camel-case (une majuscule pour séparer les mots).

Javascript
let el = document.getElementById('id'); el.style['animation-timing-function'] = 'ease'; // ou let el = document.getElementById('id'); el.style.animationTimingFunction = 'ease';

Lire en Javascript la valeur de animation-timing-function.

Le code ci-dessous renvoie la valeur de animation-timing-function qui a été définie en HTML, par l'attribut style. La valeur éventuellement définie via un électeur CSS n'est pas renvoyée.

Javascript
let el = document.getElementById('id'); let value = el.style['animation-timing-function']; // ou let el = document.getElementById('id'); let value = el.style.animationTimingFunction;

Lire la valeur calculée de animation-timing-function en Javascript.

La valeur calculée peut être celle qui est définie sur l'élément lui-même, ou une valeur héritée via le mécanisme d'héritage habituel. A défaut ce sera la valeur initiale de la propriété (ease dans le cas de animation-timing-function) mais la valeur calculée est toujours définie.

Javascript
let el = document.getElementById('id'); let value = window.getComputedStyle(el).getPropertyValue('animation-timing-function');

Modifier la valeur de la propriété animation-timing-function avec JQuery.

JQuery

$('#id').css('animation-timing-function', 'ease');
// ou
$('#id').css('animationTimingFunction', 'ease');

Lire la valeur calculée de la propriété animation-timing-function avec JQuery.

JQuery
let value = $('#id').css('animation-timing-function');

Autres exemples de code.

D'autres exemples de code Javascript et JQuery sont donnés sur la page Javascript et CSS.

Testez vous-même.

Les boutons ci-dessous appliquent la valeur saisie à la propriété animation-timing-function et affichent ensuite soit la valeur telle qu'elle a été appliquée, soit la valeur calculée. Cette deuxième option permet de voir comment est mémorisée (sérialisée) la valeur de animation-timing-function.

Simulateur avec la propriété animation-timing-function.

Le simulateur modifie la propriété animation-timing-function du bloc bleu. Le bloc gris est animé pour comparaison avec la valeur linear.

animation-timing-function :
linear

Prise en charge par les navigateurs (compatibilité).

Très bonne prise en charge par les navigateurs actuels, sauf pour le deuxième paramètre de la fonction steps(), qui est un peu moins bien traité.

Colonne 1
Capacité de prendre en charge de façon générale les animations en CSS.
Colonne 2
Compatibilité des navigateurs avec la syntaxe de la propriété animation-timing-function.
Colonne 3
Prise en charge du paramètre jump dans la syntaxe de la fonction steps().
1
Support des
animations
2
Propriété
animation-timing-function
3
Valeur
jump
Estimation de la prise en charge globale.
97%
96%
95%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Chrome

Edge

Opéra

Safari

Safari sur IOS

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

Samsung Internet

Firefox

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Historique de la propriété animation-timing-function.

Voir aussi, au sujet des animations.

La norme CSS est divisée en modules, chacun de ces modules évoluant à son rythme (niveau 1, niveau 2...). Les animations sont décrites dans le module CSS Animations. Vous y trouverez également la définition des termes ci-après :

Propriétés :

animation
Propriété résumée définissant la plupart des paramètres d'animation : durée, fonction d'accélération, nombre de répétition, direction, etc.
animation-composition
Définit comment interagissent plusieurs animations appliquées à la même propriété.
animation-delay
Temps d'attente avant le démarrage de l'animation.
animation-direction
Sens de l'animation (normal ou inverse).
animation-duration
Définit la durée totale d'un cycle d'animation.
animation-fill-mode
Définit le remplacement lorsque l'animation n'est pas en cours d'exécution.
animation-iteration-count
Définit le nombre de fois qu'une animation doit être jouée.
animation-name
Définit l'animation à appliquer à l'élément.
animation-play-state
État de l'animation (en cours ou en pause).
animation-timeline
Associe l'animation à autre chose que le temps, par exemple le défilement d'un élément.

Directives :

@keyframes
Définit le nom d'une animation et quelles sont les propriétés qui sont animées.