will-change
Свойство в CSS оптимизирует анимацию, позволяя браузер знать , какие свойства и элементы только собираемся манипулировать, потенциально увеличивая производительность этой конкретной операции.
Это свойство имеет четыре значения:
auto
: будут применены стандартные оптимизации браузера.scroll-position
: указывает, что позиция прокрутки элемента будет анимирована когда-нибудь в ближайшем будущем, поэтому браузер подготовится к содержанию, которое не отображается в окне прокрутки элемента.contents
: ожидается, что содержимое элемента изменится, поэтому браузер не будет кэшировать содержимое этого элемента.: любое определяемое пользователем свойство, такое как
transform
или, кopacity
которому мы хотимwill-change
применить.
Мы можем сообщить браузеру, что скоро произойдет изменение transform
свойства, следующим образом:
.element ( will-change: transform; )
Или, если мы хотим объявить несколько значений, мы можем использовать список, разделенный запятыми, например:
.element ( will-change: transform, opacity; )
Однако важно не злоупотреблять этим will-change
свойством, так как это может фактически снизить производительность страницы (обратите внимание, что all
для этого свойства нет значения по уважительной причине). В результате MDN рекомендует использовать свойство в качестве последнего средства для устранения существующих проблем с производительностью, а не тех, которые, как вы ожидаете, могут произойти. И при его использовании рекомендуется переключать will-change
непосредственно перед изменением элемента или свойства, а затем снова отключать его вскоре после завершения процесса.
Поддержка браузера
Эти данные о поддержке браузером взяты из Caniuse, где есть более подробная информация. Число означает, что браузер поддерживает эту функцию в этой версии и выше.
Рабочий стол
Хром | Fire Fox | IE | Край | Сафари |
---|---|---|---|---|
36 | 36 | Нет | 79 | 9.1 |
Мобильный / планшет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 год | 9,3 |