| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> CSS动画和JS动画对比 -> 正文阅读 |
|
[游戏开发]CSS动画和JS动画对比 |
在工作中,经常会写点动画效果,常用的方式有CSS动画还有JS动画,根据项目的需求,采用的方案各不相同,但是两者实现的性能分析没有进行对比。总结网上相关资料,在这里简单整理下 1、浏览器渲染流程 解析 HTML 生成DOM 树 「生成 DOM 树」 「生成 Render 树」 「DOM 树和 Render 树」 🍋 2. 回流和重绘 回流 每一次的回流都会将网页内容「重新渲染」,只是我们人眼感觉不到有任何变化,但是它确实是会清空页面的,再从页面的左上角的第一个像素点从左到右从上到下这样一点一点渲染,每次回流都会是这样的过程,只是感觉不到而已 ? ? display、float、grid 重绘 渲染树的节点发生改变,但不影响该节点的集合属性,回流对浏览器性能的消耗是远大于重绘的。并且回流就必然带来重绘,重绘不一定需要回流 「外观属性」 clip,background 在介绍完这些知识后我们来聊聊 CSS 动画 🍍 3. CSS3 动画 CSS3 动画也被称为补间动画,原因是只需要添加关键帧的位置,其他的未定义的帧会被自动生成 因为我们只设置了几个关键帧的位置,所以在进行动画控制的时候比较困难,不能再半路暂停动画,或者在动画过程中添加一些其他操作,都不大容易 但是 CSS 动画也有很多的好处 浏览器可以对动画进行优化 但是它也有很多的优势 细腻的动画 说了这么多,到底为什么CSS动画要「更高效」呢? 「第一点」 「第二点」 「第三点」 而 CSS 的动画是运行在合成线程中的,不会阻塞主线程,并且在合成线程中完成的动作不会触发回流和重绘 当然还有一个重要的点:JS 动画运行在 CPU,而 CSS 动画运行在 GPU 总的来说, CSS动画的渲染成本小,并且它的执行效率高于 JavaScript 动画 那我们什么时候使用 CSS 动画,什么时候使用 JS 动画呢? 我个人觉得 「只要能用 CSS 实现的动画,就不要采用 JS 去实现」,可以多采用 CSS 预处理器去做更多复杂的动画,就像我之前用 SCSS 做的流星雨动画一样 如果动画相较复杂,我们可以采用 JS + canvas 去尝试,能不能实现 最后再考虑纯 JS 实现 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/21 23:44:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |