CSS动画和JS动画对比

本文探讨了CSS动画与JS动画在浏览器渲染流程、回流重绘、性能及可控制性方面的差异。CSS动画由于其补间性质、浏览器优化及运行于合成线程,通常具有更高的效率。然而,JS动画提供了更高程度的控制和细腻的动画效果。在选择动画实现方式时,推荐优先考虑CSS动画,仅在复杂场景下使用JS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在工作中,经常会写点动画效果,常用的方式有CSS动画还有JS动画,根据项目的需求,采用的方案各不相同,但是两者实现的性能分析没有进行对比。总结网上相关资料,在这里简单整理下
本文主要讲以下这些内容

1、浏览器渲染流程
2、回流和重绘
3、CSS 动画
4、JS 动画
两者对比
🍉 1. 浏览器的渲染流程
渲染流程主要有4个步骤

解析 HTML 生成DOM 树
解析 CSS 样式生成 CSSOM 树,CSSOM 树与 DOM 树结合生成 Render tree
布局 Render Tree 对每个节点进行布局处理,确定在屏幕上的位置
绘制 Render Tree,遍历渲染树将每个节点绘制出来
为了优化用户体验,渲染引擎不会等到 HTML 解析完才创建布局渲染树

「生成 DOM 树」
DOM 树的构建是一个深度遍历过程,也就是说只有在所有子节点都构建好后才会去构建当前节点的下一个兄弟节点

「生成 Render 树」
生成 DOM 树的同时会生成 CSSOM 树,根据 CSSOM 和 DOM 树构建 Render Tree,渲染树包括颜色,尺寸等显示属性的矩形
在这里插入图片描述

「DOM 树和 Render 树」

🍋 2. 回流和重绘

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值