css3动画和javascript动画相比谁更快
推荐于2016-04-06
展开全部
JavaScript和jQuery是错误地混为一谈。JavaScript动画是快速的。jQuery是慢下来。为什么呢?因为尽管jQuery是非常强大的-它从未jQuery的设计目标是一个高性能的动画引擎:
jQuery是无法避免的 layout thrashing由于它的代码库,多用在动画。
jQuery的内存消耗经常触发垃圾收集暂时冻结的动画。
jQuery使用setInterval代替requestanimationframe(RAF)为为了保护自己的新手。
请注意,layout thrashing是什么原因导致缓慢的开始动画,垃圾收集是什么导致口吃的原因在动画,和Raf的缺失是什么通常产生较低的帧速率。
jQuery是无法避免的 layout thrashing由于它的代码库,多用在动画。
jQuery的内存消耗经常触发垃圾收集暂时冻结的动画。
jQuery使用setInterval代替requestanimationframe(RAF)为为了保护自己的新手。
请注意,layout thrashing是什么原因导致缓慢的开始动画,垃圾收集是什么导致口吃的原因在动画,和Raf的缺失是什么通常产生较低的帧速率。
展开全部
CSS动画和JS动画主要的不同点是
功能涵盖面,JS比CSS3大
定义动画过程的@keyframes不支持递归定义,如果有多种类似的动画过程,需要调节多个参数来生成的话,将会有很大的冗余(比如jQuery Mobile的动画方案),而JS则天然可以以一套函数实现多个不同的动画过程
时间尺度上,@keyframes的动画粒度粗,而JS的动画粒度控制可以很细
CSS3动画里被支持的时间函数非常少,不够灵活
以现有的接口,CSS3动画无法做到支持两个以上的状态转化
实现/重构难度不一,CSS3比JS更简单,性能调优方向固定
对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而JS则需要撰写额外代码
CSS动画有天然事件支持(TransitionEnd、AnimationEnd,但是它们都需要针对浏览器加前缀),JS则需要自己写事件
CSS3有兼容性问题,而JS大多时候没有兼容性问题。
功能涵盖面,JS比CSS3大
定义动画过程的@keyframes不支持递归定义,如果有多种类似的动画过程,需要调节多个参数来生成的话,将会有很大的冗余(比如jQuery Mobile的动画方案),而JS则天然可以以一套函数实现多个不同的动画过程
时间尺度上,@keyframes的动画粒度粗,而JS的动画粒度控制可以很细
CSS3动画里被支持的时间函数非常少,不够灵活
以现有的接口,CSS3动画无法做到支持两个以上的状态转化
实现/重构难度不一,CSS3比JS更简单,性能调优方向固定
对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而JS则需要撰写额外代码
CSS动画有天然事件支持(TransitionEnd、AnimationEnd,但是它们都需要针对浏览器加前缀),JS则需要自己写事件
CSS3有兼容性问题,而JS大多时候没有兼容性问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询