我一直在尝试 javascript 动画,并注意到在使用will-change
属性并将transform3D()
动画元素分离到新层以进行 gpu 渲染时的性能差异。当我尝试为元素设置动画时会发生这种情况scaling
,该元素也具有border-radius
css 属性。
在这里写代码
没有will-change
属性浏览器将执行额外的光栅化绘制(在
屏幕截图上的光栅化线程 1 中)
will-change
没有光栅化绘画动作(截图)。
当我尝试在现实项目中一次为多个元素设置动画时,情况会变得更糟(尤其是在移动设备上会受到伤害)。(有 will-change,没有 will-change)
所以问题是:如何will-change
设法提供这种优化,即使它应该做与transformZ(0)
(为 gpu 渲染创建新层)基本相同的事情。有没有什么方法可以在不使用的情况下优化这个动画will-change
?