首頁  >  問答  >  主體

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

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

阿神阿神2720 天前409

全部回覆(5)我來回復

  • 高洛峰

    高洛峰2017-04-11 09:12:16

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

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

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

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

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

    回覆
    0
  • 高洛峰

    高洛峰2017-04-11 09:12:16

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-11 09:12:16

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

    回覆
    0
  • PHPz

    PHPz2017-04-11 09:12:16

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

    回覆
    0
  • 怪我咯

    怪我咯2017-04-11 09:12:16

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

    回覆
    0
  • 取消回覆