1、CSS动画

优点:

1.1)浏览器可以对动画进行优化。

1.1.1 )浏览器使用requestAnimationFrame 比起setTimeout, setInterval 设置动画的优势主要是:

1) requestAnimationFrame 会把每- -帧中的所有DOM操作集中起来,在一-次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧.

2)在隐藏或不可 见的元素中requestAnimationFrame不会进行重绘或回流,这当然就意味着更少的的cpu, gpu 和内存使用量。

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

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

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

缺点:

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

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

2、JS动画

优点:

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

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

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

缺点:

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

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

3、css 动画和js动画的差异

3.1)代码复杂度,js 动画代码相对复杂- - 些.

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

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

总结:

简单的状态切换,不需要中间过程控制,css 动画是优选方案。

复杂的状态的APP.应该使用js动画

JavaScript 动画和CSS3动画有什么区别? (前端面试题!必会)相关推荐

  1. js动画与css3动画的区别

    欢迎学习交流!!! 持续更新中- 文章目录 JS动画(逐帧动画) css3(补间动画) 总结 JS动画(逐帧动画) 首先,在js动画是逐帧动画,是在时间帧上逐帧绘制帧内容,由于是一帧一帧的话,所以其可 ...

  2. css+动画优化,css3动画性能优化--针对移动端卡顿问题

    一.使用css,jquery,canvas制作动画 1.Canvas 优点:性能好,强大,支持多数浏览器(除了IE6.IE7.IE8),画出来的图形可以直接保存为 .png 或者 .jpg的图形: 缺 ...

  3. 前端面试题集锦——JavaScript

    前端面试题集锦--JavaScript 1.请你谈谈 Cookie 的优缺点 cookie是存储于访问者计算机中的变量 cookie是浏览器提供的一种机制 可以由JavaScript对其进行控制(设置 ...

  4. 前端面试题汇总(JavaScript面试纯干货)

    前端面试题汇总(JavaScript面试纯干货) 1 闭包 闭包就是能够读取其他函数内部变量的函数 闭包是指有权访问另⼀个函数作⽤域中变量的函数,创建闭包的最常⻅的⽅式就是在⼀个函数内创建另⼀个函数, ...

  5. 详细前端面试题javascript篇--持续更新

    最新前端面试题汇总大全(超详细含vue,react,css,js,webpack,性能优化等)–持续更新点击查看 前端HTML篇 前端CSS篇 前端面试题js篇--持续更新 1. JS 数据类型 ?存 ...

  6. 2021最新最全前端面试题(包含HTML、CSS、JavaScript、Vue、React、浏览器、算法与数据结构等)

    整理了一些前端面试题,希望对正在找前端工作的伙伴有用.本篇文章内容篇幅较大,主要针对初中级前端开发工程师. 篇幅过长,大家可以先点赞收藏以后慢慢看. 关于HTML 的title和alt属性有什么区别 ...

  7. 前端面试题 HTML5 CSS3(盒子模型、盒子水平垂直居中、经典布局) JS(闭包、深浅克隆、数据劫持和拦截) 算法(排序、去重、数组扁平化) Vue(双向数据绑定原理、通信方式)

    前端面试题 HTML5 相关面试题 CSS3 相关面试题 盒子模型 盒子水平垂直居中的方案 经典布局方案 圣杯布局 双飞翼布局 flex布局 定位方式布局 css实现三角形 JS 相关面试题 8种数据 ...

  8. 2023年最全前端面试题考点HTML5+CSS3+JS

    合集:2023年最全前端面试题考点HTML5+CSS3+JS+Vue3+React18+八股文+手写+项目+笔试_参宿7的博客-CSDN博客 本章内容为一面基础面 为了简洁,相关文章参考链接在标题里 ...

  9. 「前端面试题系列7」Javascript 中的事件机制(从原生到框架)

    前言 这是前端面试题系列的第 7 篇,你可能错过了前面的篇章,可以在这里找到: 理解函数的柯里化 ES6 中箭头函数的用法 this 的原理以及用法 伪类与伪元素的区别及实战 如何实现一个圣杯布局? ...

最新文章

  1. python excel web_使用python在WEB页面上生成EXCEL文件
  2. Phpcms V9手机门户设置教程:怎么用PC V9做手机网站
  3. 【DIY】arduino播放音乐方案——TMRpcm
  4. 老男孩学习之亲身经历心得
  5. 关于辅酶Q10的相关常识与选购要点(转)
  6. Magento中调用JS文件的几种方法
  7. 离开小米后 周受资将加入字节跳动担任CFO
  8. 阿里云云计算 9 弹性裸金属服务器(神龙)
  9. css修改上传文件按钮样式,CSS自定义文件上传按钮样式,兼容主流浏览器
  10. java期末大作业:记事本
  11. mbedtls基础及其应用
  12. 51单片机实现浮点数四则运算计算器(C语言的偏软硬件实现)
  13. 快速开发 HTML5 交互式地铁线路图
  14. NAS中的文件共享协议
  15. NetBackup 8.2 LinuxR 服务器安装及使用 ssh 方法将客户端软件从 UNIX 主服务器安装到 UNIX 客户端(持续更新)
  16. 【分析BMI指数~python】
  17. python画饼图程序_Scribus中的Python脚本:制作饼图
  18. 搜索-Query理解(全)
  19. PullToRefresh第三方刷新控件使用总结
  20. MDK V5.28来了,STM32G4也来了

热门文章

  1. 从拼多多优惠券事件看到的一些反思
  2. 卷积神经网络之优化参数(剪子包袱锤)
  3. 【esp8266、arduino串口传递浊度、温度数据(json)】
  4. camunda工作流
  5. html直角三角形怎么实现,CSS绘制三角形的实现代码(border法)
  6. 软银的败笔Wework估值90亿,借壳上市能重回高光时刻么?
  7. 赣州seo教您如何利用文章页来做长尾关键词优化?
  8. 20 Rest高级客户端实践(六):搜索入门和基本API介绍
  9. 什么是微波天线阵列及微波天线阵列类型
  10. QQ2009 Preview deb包 更新下载地址