css3的过渡效果,会阻塞线程么. 实验了感觉是不阻塞的, 但这时为什么呀.css的过渡是一个怎么样的原理实现的
高洛峰2017-04-11 09:12:16
这是一个很玄学的问题,并不能一概而论。
CSS 动画会不会阻塞JS,或者 JS 会不会阻塞 CSS 动画,答案是有时会,有时不会。这取决于 CSS 动画改变的是什么属性。
具体可以看这篇文章,注意看里面的 demo。
http://www.phpied.com/css-ani...
但是具体为什么会这样,我也说不清楚。感觉这个涉及到浏览器底层原理了,希望有大神解惑。
PS: CSS 动画是可以暂停的。通过 animation-play-state: paused 实现
高洛峰2017-04-11 09:12:16
js运算+渲染层会,比如js的;css解析的如果硬件加速走的后端线程再返回到渲染器;不开硬件加速只在渲染器运行,只会卡自己;浏览器的主程是独立的;JS也是;
PHPz2017-04-11 09:12:16
css过渡是指transiton么,是用贝塞尔插值数学函数实现的
js动画才会阻塞线程吧,我记得css3动画是在主线程之外运行的。。还可以被浏览器优化,但是不能像js动画那样半路暂停滚回