Теперь мы все знаем, особенно из эта хорошая статья о том, что мы должны предпочесть css-преобразования анимации позиции.
Но у нас есть выбор между translate()
и translate3d()
...
Какой из них обычно быстрее?
Теперь мы все знаем, особенно из эта хорошая статья о том, что мы должны предпочесть css-преобразования анимации позиции.
Но у нас есть выбор между translate()
и translate3d()
...
Какой из них обычно быстрее?
На этом сайте ниже проводятся тесты, сравнивающие translate()
, translate3d()
и пару других свойств. Согласно ему, translate3d()
работает быстрее в большинстве браузеров.
http://jsperf.com/translate3d-vs-xy
Использование translate3d подталкивает анимацию CSS к аппаратному ускорению. Даже если вы хотите сделать базовый 2D-перевод, используйте translate3d для большей мощности! Так что «T3d» просто лучше, потому что он говорит CSS-анимациям продвигать анимацию в 3D! Вот почему это быстрее. (Ответ Кэмерона Литтла является доказательством)
y
для translate3d перевести на вертикальную ось. transform: translate3d(0, 42px, 0);
- person Florian; 11.12.2019
Как предположил Кэмерон, translate3d
должно быть быстрее во многих браузерах, в основном в тех, которые используют аппаратное ускорение gfx для ускорения рендеринга. особенно в webkit translate3d
был предпочтительным способом принудительного аппаратного ускорения элементов страницы.
хотя по опыту MIT иногда есть один недостаток в использовании 3D-преобразований - в определенных комбинациях браузер-версия/ОС (osx+safari, я смотрю на вас) аппаратно-ускоренный рендеринг может немного изменить сглаживание шрифта, а также интерполяцию, вызывая незначительное мерцание или размытие. эти ситуации в основном можно обойти, но их следует иметь в виду.