文档章节

js动画和css动画特点及区别

o
 osc_a22drz29
发布于 2019/03/25 18:58
字数 815
阅读 37
收藏 0

精选30+云产品,助力企业轻松上云!>>>

CSS动画

优点: (1)浏览器可以对动画进行优化。

         1、 浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout,setInterval设置动画的优势主要是:1)requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。2)在隐藏或不可见的元素中requestAnimationFrame不会进行重绘或回流,这当然就意味着更少的的cpu,gpu和内存使用量。

        2、强制使用硬件加速 (通过 GPU 来提高动画性能)

      (2)代码相对简单,性能调优方向固定

          (3)对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而JS则需要撰写额外代码

缺点:

  1、 运行过程控制较弱,无法附加事件绑定回调函数。CSS动画只能暂停,不能在动画中寻找一个特定的时间点,不能在半路反转动画,不能变换时间尺度,不能在特定的位置添加回调函数或是绑定回放事件,无进度报告

    2、  代码冗长。想用 CSS 实现稍微复杂一点动画,最后CSS代码都会变得非常笨重。

JS动画

优点:

    (1)JavaScript动画控制能力很强, 可以在动画播放过程中对动画进行控制:开始、暂停、回放、终止、取消都是可以做到的。

        (2)动画效果比css3动画丰富,有些动画效果,比如曲线运动,冲击闪烁,视差滚动效果,只有JavaScript动画才能完成

        (3)CSS3有兼容性问题,而JS大多时候没有兼容性问题

缺点:

   (1)JavaScript在浏览器的主线程中运行,而主线程中还有其它需要运行的JavaScript脚本、样式计算、布局、绘制任务等,对其干扰导致线程可能出现阻塞,从而造成丢帧的情况。

         (2)代码的复杂度高于CSS动画

总结:如果动画只是简单的状态切换,不需要中间过程控制,在这种情况下,css动画是优选方案。它可以让你将动画逻辑放在样式文件里面,而不会让你的页面充斥 Javascript 库。然而如果你在设计很复杂的富客户端界面或者在开发一个有着复杂UI状态的 APP。那么你应该使用js动画,这样你的动画可以保持高效,并且你的工作流也更可控。所以,在实现一些小的交互动效的时候,就多考虑考虑CSS动画。对于一些复杂控制的动画,使用javascript比较可靠。

 

css 动画和 js 动画的差异

1. 代码复杂度,js 动画代码相对复杂一些

 

2. 动画运行时,对动画的控制程度上,js 能够让动画,暂停,取消,终止,css动画不能添加事件

 

3. 动画性能看,js 动画多了一个js 解析的过程,性能不如 css 动画好

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
常用到用css3实现的转换,过渡和动画

为什么要用css动画替换js动画 导致JavaScript效率低的两大原因:操作DOM和使用页面动画。 通常我们会通过频繁的操作 DOM的CSS来实现视觉上的动画效果,导致js效率低的两个因素都包括在内了在...

osc_4o5tc4xq
2019/10/11
3
0
帮助你更好理解javascript中easing功能的网站 - Easings.net

日期:2012-10-17 来源:GBin1.com 如果你开发过jQuery的动画效果的话,肯定接触过一个jQuery插件:jquery.easing plugin,这个插件可以帮助你生成不同类型的动画风格。使用的方式都是不同的...

gbin1
2012/10/17
63
0
每日前端签到(第六十四天)

第六十四天(2018-10-07) [html] 写个例子说明HTML5在移动端如何打开APP? [css] 说说你对jpg、png、gif的理解,分别在什么场景下使用?有使用过webp吗? [js] formData主要是用来做什么的?...

拿着前端号码牌徘徊
2019/10/23
0
0
[练习]利用CSS steps 实现逐帧动画

网页逐帧动画的实现方式 网页中的逐帧动画,大致可分为两大类的实现方式, 分别是使用JS控制,和单纯使用CSS实现,两者的优劣总体概括来说就是: JS动画可控性更强,但开销大,实现复杂。 CS...

囧囧
2019/09/29
0
0
前端自学总结

一.软件相关 vs实用插件 二.基础 html基础 console的各种输出格式 audio标签以及audio对象 HTML标签嵌套规则 css基础,css基础选择器 CSS高级选择器 HTML标签嵌套规则 HTTP中get和post 前端实...

osc_jtynr6ek
2019/05/14
2
0

没有更多内容

加载失败,请刷新页面

加载更多

macz技巧分享—macOS高端使用技巧

Macos 的占有量不如 Windows,两者之间当操作方式也有很大的不同,当很多人熱悉 Windows 的操作之后,再接触 macos,觉得难上手,其实是习惯问题。如果你学习一些技巧,会觉得 macos 其实也不...

mac小叮当
33分钟前
11
0
手把手教你如何用黑白显示器显示彩色!

来源:大数据文摘 本文约1000字,建议阅读6分钟。 本文为你介绍如何通过黑白显示器上也能显示出彩色。 原来在黑白显示器上也能显示出彩色啊!通过在监视器上覆盖拜耳滤色镜,并拼接彩色图像,...

osc_jklrr90y
33分钟前
18
0
key-value结构排序:给定一个字符串,统计每个字符出现频率,先按value降序,再按key升序

对于key-value结构的排序 第一种:lambda表达式 第二种:函数 第三种:类对()的重载,仿函数形式 #include <iostream>#include <vector>#include <unordered_map>#include <string>#in......

osc_gwtkg2dc
34分钟前
0
0
BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛——2020全球区块链创新50强》

BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛——2020全球区块链创新50强》 目录 世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛——2020全球...

osc_vew1u0h0
35分钟前
0
0
BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛》(三)

BlockChain:2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛》(三) 目录 2020年7月10日世界人工智能大会WAIC《链智未来 赋能产业区块链主题论坛》 演讲嘉宾 演讲内容 ...

osc_8o71811p
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部