css3的过渡和动画会阻塞线程么, 为什么?

css3的过渡效果,会阻塞线程么. 实验了感觉是不阻塞的, 但这时为什么呀.css的过渡是一个怎么样的原理实现的

阅读 7.2k
5 个回答

这是一个很玄学的问题,并不能一概而论。

CSS 动画会不会阻塞JS,或者 JS 会不会阻塞 CSS 动画,答案是有时会,有时不会。这取决于 CSS 动画改变的是什么属性。

具体可以看这篇文章,注意看里面的 demo。
http://www.phpied.com/css-ani...

但是具体为什么会这样,我也说不清楚。感觉这个涉及到浏览器底层原理了,希望有大神解惑。

PS: CSS 动画是可以暂停的。通过 animation-play-state: paused 实现

js运算+渲染层会,比如js的;css解析的如果硬件加速走的后端线程再返回到渲染器;不开硬件加速只在渲染器运行,只会卡自己;浏览器的主程是独立的;JS也是;

新手上路,请多包涵

因为浏览器对单个网页的处理是单线程的

css过渡是指transiton么,是用贝塞尔插值数学函数实现的
js动画才会阻塞线程吧,我记得css3动画是在主线程之外运行的。。还可以被浏览器优化,但是不能像js动画那样半路暂停滚回

CSS3不是通过GPU来完成吗?理论上应该不会

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题