我在 div 元素上有简单的过渡动画。为了防止不必要的绘画事件,我对其应用了更高的 z-index 和 0 变换,因此这个 div 很可能位于它自己的图层上。但是瀑布图显示了很可能在每个动画刻度之后发生的图层组合事件。我想知道,这是 GPU 页面渲染之前的最终层组合,并且在页面上的每次更改之前都是不可避免的,还是我只是做错了什么?

请您参考如下方法:

Timeline 中的 Compositing 事件总是在更新动画帧时发出,您之前的假设是正确的。要验证您的动画 div 是否真的变成了图层,请查找 Paint 事件——这些事件是针对每个图层的,如果一个图层相对于另一图层过渡,动画期间不应该有任何 paint 事件,前提是图层内容没有改变。另请注意,在最新版本的 Chrome (m30+) 中,时间轴显示与事件弹出窗口中的 Paint 关联的层的根。

另一种检查动画元素是否被提升到图层的方法是实验性图层面板(在 about:flags 中启用 DevTools 实验,重新启动 Chrome,然后在 DevTools 设置的实验选项卡中启用图层面板)。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!