Transition-behavior - Propriété CSS

transition-behavior

Résumé des caractéristiques de la propriété transition-behavior

Description rapide
Définit le comportement des transitions sur les propriétés qui sont animables de façon discrete.
Statut
Standard
S'applique à
Tous les éléments.
Utilisable sur
HTML
Pourcentages
Ne s'appliquent pas.
Valeur initiale
normal
Héritée par défaut
Non.
Not animable : la propriété transition-behavior ne peut pas être animée.
Per grammar : sérialisation dans l'ordre de la syntaxe.
Module W3C
Les transitions en CSS
Statut du document: WD (document de travail)

Schéma de la syntaxe de transition-behavior.

transition-behavior - Syntax DiagramSyntax diagram of the transition-behavior CSS property. See stylescss.free.fr for details. normal normal allow-discrete allow-discrete , ,transition-behavior:;transition-behavior:;
Schéma syntaxique de la propriété transition-behavior.
Cliquez sur les liens du schéma pour plus de précisons sur les valeurs.

Description de la propriété transition-behavior.

La propriété transition-behavior définit le comportement d'une transition par rapport aux propriétés dont l'animation est du type discrete.

Rappel : certaines propriétés peuvent être animées de façon fluide et progressive. Ce sont généralement les propriétés dont la valeur est un nombre décimal ou une couleur. A l'inverse les propriétés qui attendent une valeur prédéfinie ne peuvent évoluer que d'une façon brutale d'une valeur à une autre.

Ce n'est pas toujours aussi simple. Par exemple l'épaisseur d'un trait de bordure peut être thin, medium ou thick, mais ces valeurs prédéfinies sont associées à des valeurs numériques : 1 pixel pour thin, 3 pixels pour medium, etc. Il en résulte que les transitions peuvent être progressives quand même.
Par contre les valeurs prédéfinies pour le style de trait (solid, dotted, etc.) ne sont pas associées à des valeurs numériques. Dans ce cas, la transition ne se fera pas.

Notre exemple ci-dessous montre la différence entre propriétés discrètes et propriétés qu'il est possible d'interpoler. Pour déclencher la transition, un code Javascript modifie régulièrement l'épaisseur et le style du contour.

L'épaisseur du contour peut être animée de façon progressive.
Une propriété qu'il est possible d'interpoler :
outline-width.
Par contre l'animation du style de trait est du type discrete.
Une propriété discrète :
outline-style.


On voit également que la propriété discrète change de valeur au début de la transition. C'est là que la propriété transition-behavior intervient : elle provoque un changement de valeur au milieu du temps affecté à la transition.
L'exemple ci-dessous montre une propriété discrète (text-align), objet d'une transition. La propriété transition-behavior reçoit, pour l'exemple de gauche la valeur normal et la valeur allow-discrete pour l'exemple de droite. Dans les deux cas, le curseur montre l'avancement de la transition.

Un code Javascript change régulièrement
l'alignement de ce texte.
transition-behavior:normal;.
Un code Javascript change régulièrement
l'alignement de ce texte.
transition-behavior:allow-discrete;.

Valeurs pour transition-behavior.

  • transition-behavior: normal;

    Les animations ne sont pas exécutées sur les propriétés dont l'animation est discrete. Ce qui veut dire que ces propriétés changent de valeur dès le début de la transition.

    Un code Javascript change périodiquement le contour de ce texte.
    transition-behavior:normal;
  • transition-behavior: allow-discrete;

    Les animations sont exécutées aussi bien sur les propriétés dont l'animation est discrete que sur celles dont l'animation est progressive. Bien entendu les propriétés non animables ne sont jamais concernées.

    Un code Javascript change périodiquement le contour de ce texte.
    transition-behavior:allow-discrete;
    <
  • transition-behavior: initial; (normal) transition-behavior: inherit; transition-behavior: revert; transition-behavior: revertLayer; transition-behavior: unset;

    Consultez les pages suivantes pour plus de détails : initial, inherit, revert, revert-layer, unset.

Exemple d'animation de transition-behavior.

Étant elle-même une propriété relative aux transitions, la propriété transition-behavior ne peut pas être animée.

Accéder à la propriété transition-behavior par programme.

Changement de la valeur de transition-behavior avec Javascript.

En Javascript, voici comment modifier la valeur de transition-behavior. 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 la notation en camel-case (une majuscule pour séparer les mots).

Javascript
let el = document.getElementById('id'); el.style['transition-behavior'] = 'allow-discrete'; // ou let el = document.getElementById('id'); el.style.transitionBehavior = 'allow-discrete';

Récupération de la valeur de transition-behavior avec Javascript.

La propriété doit avoir été affectée directement à l'élément lui-même via son attribut style, et pas en passant par un sélecteur.

Javascript
let el = document.getElementById('id'); let value = el.style['transition-behavior']; // ou let el = document.getElementById('id'); let value = el.style.transitionBehavior;

Récupération de la valeur calculée de transition-behavior.

La valeur calculée est celle qui résulte de l'évaluation des unités relatives et de la prise en compte éventuelle des valeurs héritées. Dans tous les cas, la valeur calculée est définie.

Javascript
let el = document.getElementById('id'); let value = window.getComputedStyle(el).getPropertyValue('transition-behavior');

Changement de la valeur de transition-behavior avec JQuery.

JQuery

$('#id').css('transition-behavior', 'allow-discrete');
// ou
$('#id').css('transitionBehavior', 'allow-discrete');

Récupération de la valeur calculée de transition-behavior avec JQuery.

JQuery
let value = $('#id').css('transition-behavior');

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é transition-behavior et affichent ensuite soit la valeur telle qu'elle a été appliquée, soit la valeur calculée. Dans le cas de transition-behavior il n'y aura pas de différence entre ces deux retours car toutes les valeurs acceptées par transition-behavior sont des valeurs prédéfinies.

Compatibilité des navigateurs avec transition-behavior.

La propriété transition-behavior est bien reconnue et traitée par les navigateurs actuels.
Attention cependant aux transitions sur les propriétés display et content-visibility qui supportent mal les transitions, même lorsque transition-behavior a la valeur allow-discrete. Voir à ce sujet la directive @starting-style.

1
Propriété
transition-behavior
Estimation de la prise en charge globale.

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Opéra Mobile

QQ Browser

Baidu Browser

Opéra

Firefox pour Androïd

Chrome

Edge

Firefox

Androïd Brower

Chrome pour Androïd

Samsung Internet

Safari

Safari sur IOS

KaiOS Browser

Opéra mini

Histoire de la propriété transition-behavior.

  • Les transitions en CSS - Niveau 2

    Le niveau 2 de la spécification sur les transitions ajoute la possibilité d'appliquer une transition sur une propriété discrète.
    Une nouvelle directive @starting-style permet de définir les valeurs de départ pour les valeurs des propriétés . Il est maintenant possible d'appliquer une transition sur des éléments qui passent de l'état invisible à l'état visible.

    Concernant transition-behavior. Introduction de la propriété transition-behavior.
    WD
    05 Septembre 2023
    Document de travail.
    CR
    PR
    REC

Voir aussi, au sujet des transitions.

Les spécifications CSS éditées par le W3C sont organisées en modules. La propriétés transition-behavior fait partie du module les transitions en CSS, ainsi que les autres propriétés listées ci-dessous :

Propriétés :

transition
Regroupe les différents paramètres d'une ou plusieurs transitions.
Transition-behavior
Définit le comportement des transitions sur les propriétés qui sont animables de façon discrete.
transition-delay
Définit le temps d'attente avant que la transition ne commence, compté à partir de la modification de la propriété.
transition-duration
Définit la durée d'une transition, c'est à dire le temps qu'elle met pour se dérouler entièrement.
transition-property
Définit la ou les propriétés sur lesquelles doit s'appliquer une transition.
transition-timing-function
Propriété définissant la fonction d'accélération à utiliser pendant une transition.

Directives :

@starting-style
Définit les valeurs de départ pour les propriétés qui vont être soumises à une transition.