【发布时间】: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