La will-change
proprietà in CSS ottimizza le animazioni consentendo al browser di sapere quali proprietà ed elementi stanno per essere manipolati, aumentando potenzialmente le prestazioni di quella particolare operazione.
Questa proprietà ha quattro valori:
auto
: verranno applicate le ottimizzazioni standard del browser.scroll-position
: indica che la posizione di scorrimento dell'elemento verrà animata in un prossimo futuro in modo che il browser si preparerà per il contenuto che non è visibile nella finestra di scorrimento di un elemento.contents
: il contenuto di un elemento dovrebbe cambiare, quindi il browser non memorizzerà nella cache il contenuto di questo elemento.: qualsiasi proprietà definita dall'utente come
transform
o aopacity
cui vogliamowill-change
essere applicati.
Possiamo informare il browser che sta per avvenire una modifica alla transform
proprietà in questo modo:
.element ( will-change: transform; )
Oppure, se vogliamo dichiarare più valori, possiamo usare un elenco separato da virgole come:
.element ( will-change: transform, opacity; )
È importante non abusare della will-change
proprietà, tuttavia, poiché potrebbe, in effetti, rendere la pagina meno performante (notare che non esiste un all
valore per questa proprietà per una buona ragione). Di conseguenza, MDN consiglia di utilizzare la proprietà come ultima risorsa per i problemi di prestazioni esistenti piuttosto che per quelli che si prevede possano verificarsi. E, quando lo si utilizza, si consiglia di attivare / disattivare will-change
appena prima che un elemento o una proprietà cambi e quindi disattivarlo di nuovo poco dopo il termine del processo.
Supporto del browser
Questi dati di supporto del browser provengono da Caniuse, che ha più dettagli. Un numero indica che il browser supporta la funzione a quella versione e successive.
Desktop
Cromo | Firefox | IE | Bordo | Safari |
---|---|---|---|---|
36 | 36 | No | 79 | 9.1 |
Mobile / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9.3 |