La will-change
propriété en CSS optimise les animations en indiquant au navigateur quelles propriétés et quels éléments sont sur le point d'être manipulés, augmentant potentiellement les performances de cette opération particulière.
Cette propriété a quatre valeurs:
auto
: les optimisations standard du navigateur seront appliquées.scroll-position
: indique que la position de défilement de l'élément sera animée dans un futur proche afin que le navigateur se prépare pour le contenu qui n'est pas visible dans la fenêtre de défilement d'un élément.contents
: le contenu d'un élément est censé changer, donc le navigateur ne mettra pas en cache le contenu de cet élément.: toute propriété définie par l'utilisateur telle que
transform
ou àopacity
laquelle nous voulonswill-change
être appliqués.
Nous pouvons informer le navigateur qu'un changement est sur le point d'avoir lieu dans la transform
propriété comme suit:
.element ( will-change: transform; )
Ou si nous voulons déclarer plusieurs valeurs, nous pouvons utiliser une liste séparée par des virgules telle que:
.element ( will-change: transform, opacity; )
will-change
Cependant, il est important de ne pas abuser de la propriété car cela pourrait, en fait, rendre la page moins performante (notez qu'il n'y a pas de all
valeur pour cette propriété pour une bonne raison). Par conséquent, MDN recommande que la propriété soit utilisée en dernier recours pour les problèmes de performances existants plutôt que ceux que vous prévoyez de rencontrer. Et, lors de son utilisation, il est recommandé de basculer will-change
juste avant qu'un élément ou une propriété ne change, puis de le désactiver à nouveau peu de temps après la fin du processus.
Prise en charge du navigateur
Ces données de support de navigateur proviennent de Caniuse, qui contient plus de détails. Un nombre indique que le navigateur prend en charge la fonctionnalité dans cette version et plus.
Bureau
Chrome | Firefox | C'EST À DIRE | Bord | Safari |
---|---|---|---|---|
36 | 36 | Non | 79 | 9.1 |
Mobile / tablette
Chrome Android | Android Firefox | Android | Safari sur iOS |
---|---|---|---|
88 | 85 | 81 | 9,3 |