【问题标题】:Google Chrome compositor-driven animation affected by jam in main thread受主线程卡顿影响的 Google Chrome 合成器驱动动画
【发布时间】:2016-03-08 07:57:12
【问题描述】:

这是显示谜题的小提琴:

https://jsfiddle.net/1rk65nxj/

我正在使用 CSS 动画制作这个 .spinner 元素的动画。使用will-change: transform 和translateZ(0) 将元素本身提升到它自己的合成层作为后备。

现在,我阻塞了主线程做一些类似的事情:

var i = 999999; 

while ( i > 0) {
    i--;
}

由于 CSS 动画是合成器驱动的页面更新,我预计主线程阻塞不会停止微调器,但它确实会。

现在,奇怪的是,如果我将元素的位置从相对位置更改为绝对位置,主线程卡住并不会停止微调器。

任何解释为什么position: absolute 使动画合成器驱动而position: relative 不是?

在 Google Chrome 版本 48.0.2564.116(64 位)、Mac OS X El Capitan 上。

【问题讨论】:

    标签: google-chrome hardware-acceleration blink


    【解决方案1】:

    这似乎是 Chrome 中的一个错误。我已经在这里提交了:https://bugs.chromium.org/p/chromium/issues/detail?id=592803

    【讨论】:

      猜你喜欢
      • 2021-01-16
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 2013-05-03
      • 2016-07-18
      • 2012-12-21
      • 1970-01-01
      • 2015-07-01
      相关资源
      最近更新 更多