Вопрос про CSS анимацию, и ускорение её с помощью фреймворков (react,vue)
Всем привет!
Немного предыстории: У меня стоит задача ускорения анимации в мобильном Chrome. Проект на JQuery, и анимация на нем же (.animate). Изначально обратил внимание на реактивные фреймворки, но быстро понял, что чтобы использовать их для ускорения рендеринга, придется весь проект переписывать, а он довольно большой. Потом обнаружил, что использование анимации с аппараным ускорением ( transform:translate() ) и css свойством will-change дает отличные результаты (по сравнению с тем что было). Однако все равно неприятно подтормаживает( И собственно вопрос. Могут ли фреймворки дать дополнительное ускорение анимации, в дополнение к css анимации. Вопрос только про аппаратно ускоряемую анимацию (transform, opacity). Или может, есть еще способы ускорить? Вот пример кода: <style> div { will-change: transform; transform: scale(0.9); transition: all .3s linear; } <script> $(div).css({ transform:'scale(1.2)' }); // реакция на клик |
Фреймворки не могут - это просто способ писать тот же код. Встроенная CSS анимация - это максимально возможное ускорении. Быстрее только отказаться от DOM и рисовать всё в canvas.
|
Aetae,
Спасибо! Но я не раз встречал утверждение, что React ускоряет именно рендеринг анимации. Но возможно, речь шла про анимации которые переписывают дерево DOM - width, margin и тд |
who_cares_?,
Ускоряет написание, избегает ненужных перерисовок, уменьшает количество обращений к DOM, но если система плохо тянет какую то анимацию, реакт вам вряд ли поможет. Чудес к сожалению не бывает. |
Часовой пояс GMT +3, время: 16:05. |