Den will-change
ejendom i CSS optimerer animationer ved at lade browseren vide, hvilke egenskaber og elementer er lige ved at blive manipuleret, potentielt kan øge effektiviteten af den pågældende operation.
Denne egenskab har fire værdier:
auto
: standard browseroptimeringer anvendes.scroll-position
: angiver, at elementets rulleposition vil blive animeret engang i den nærmeste fremtid, så browseren forbereder sig på indhold, som ikke er synligt i et elementes rullevindue.contents
: indholdet af et element forventes at ændre sig, så browseren ikke cacher dette elementets indhold.: enhver brugerdefineret egenskab, som
transform
elleropacity
som vi vilwill-change
blive anvendt på.
Vi kan informere browseren om, at en ændring er ved at finde sted på transform
ejendommen sådan:
.element ( will-change: transform; )
Eller hvis vi vil erklære flere værdier, kan vi bruge en komma-adskilt liste som:
.element ( will-change: transform, opacity; )
Det er vigtigt ikke at overforbruge will-change
ejendommen, da det faktisk kan medføre, at siden er mindre performant (bemærk, at der ikke er en all
værdi for denne ejendom af en god grund). Som et resultat anbefaler MDN, at ejendommen bruges som en sidste udvej for eksisterende præstationsproblemer snarere end dem, du forventer kunne ske. Og når du bruger det, anbefales det at skifte will-change
lige før et element eller en ejendom ændres og derefter slå det fra igen kort efter, at processen er afsluttet.
Browsersupport
Denne browsersupportdata er fra Caniuse, som har flere detaljer. Et tal angiver, at browseren understøtter funktionen i den version og opefter.
Desktop
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
36 | 36 | Ingen | 79 | 9.1 |
Mobil / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 9.3 |