#html #css #animation
#HTML #css #Анимация
Вопрос:
Я изучал Уилла Бойда и его выступление с гладкой анимацией на css conf.
Теперь пытаюсь повторить это без какого-либо успеха (или, по крайней мере, я думаю). При использовании transform
предполагается использовать преимущества графического процессора, поэтому в devtools он не должен отображаться как рендеринг при выборе опции «рендеринг / рисование», но это так. Есть идеи?
Сравнение примеров Уилла
плохая рыба
хорошая рыба
В моем примере
разница в css заключается в следующем: полный код и демонстрация на codepen
@keyframes bad-gpu {
0%, 100% { left: 0px; }
50% { left: 400px; }
}
@keyframes good-gpu {
0%, 100% { transform: translateX(0px); }
50% { transform: translateX(400px); }
}
Комментарии:
1. Способен ли ваш браузер использовать аппаратное ускорение с вашим графическим процессором?
2. Да, MacBook pro «late 13» с использованием Chrome, также пример Уилла работает просто отлично, не показывает мигание краски.
3. Перейдите
chrome://gpu
и проверьте аппаратное ускорение4. @Oriol доступны все варианты, кроме растеризации «только программное обеспечение», но я читал, что это только для Chromium / Android? Также, как я упоминал ранее, пример, который будет работать нормально.
Ответ №1:
Анимации CSS не ускоряются автоматически с помощью GPU. Они выполняются механизмом рендеринга браузера. Но если мы указываем анимацию с помощью transform или translate3d, то браузер использует GPU для рендеринга графики, что является более производительным.
Комментарии:
1. Вы прочитали вопрос или проверили примеры? Я четко указываю примеры с и без
transform
этого GPU.