首页 >

css3动画和js动画的区别是什么

web前端|前端问答css3动画和js动画的区别是什么
css动画,js动画
web前端-前端问答
freemarker 源码下载,ubuntu退出独占模式,爬虫系统大全图解,php园地,seo跟javalzw
JS动画
网站延迟 源码,ubuntu之后无法引导,tomcat8 部署域名,温岭爬虫招聘,php函数使用递归实现,seo入lzw

优点:

js动画控制能力强,可以在动画博凡过程中对动画进行精细控制,开始、暂停、终止、取消都是可以做到的

javaweb考勤系统源码,vscode运行less,ubuntu dns覆盖,tomcat超时问题,sqlite语句分类,阿里云服务器 负载均衡,dz商品推广插件,topjui前端框架项目,2021爬虫疫情,杭州php技能培训,seo关键词优化技术,网站第三方登陆集成,网页蓝色代码,xml模板怎么用,页面有滚动条 不能整屏显示,vb居民管理系统,微信小程序代码更新lzw
动画效果比css3动画丰富,比如曲线运动,冲击闪烁,视差滚动效果,只有js动画才能完成

js动画大多数情况下没有兼容性问题,而css3动画有兼容性问题

缺点

js动画的复杂度高于css3

js在动画浏览器的主线程中执行,而主线程还有其他javaScript脚本,样式计算、布局、绘制任务等,对其干扰可能出现阻塞从而出现丢帧的情况

js动画往往需要频繁操作DOM的css属性来实现视觉上的动画效果,这个时候浏览器要不停地执行重绘和重排,这对于性能的消耗是很大的,尤其是在分配给浏览器的内存没那么宽裕的移动端。

CSS3动画

优点:

1、部分情况下浏览器可以对动画进行优化,为什么说部分情况下呢,因为是有条件的:

在Chromium基础上的浏览器中

同时CSS动画不触发layout或paint,在CSS动画或JS动画触发了paint或layout时,需要main thread进行Layer树的重计算,这时CSS动画或JS动画都会阻塞后续操作。

2、部分效果可以强制使用硬件加速 (通过 GPU 来提高动画性能)

缺点

运行进程控制较弱,css3动画只能在某些场景下控制动画的暂停与继续,不能在特定的位置添加添加回调函数

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

css动画比js动画流畅的前提js在执行一些复杂的任务css动画比较少或者不触发pain和layout,即重绘和重排,例如通过改变如下属性生成的css动画backface-visibilityopacityperspective (设置元素视图)perspective-origintransfrom部分属性能够启动3D加速和GPU硬件加速,例如使用transform的translateZ进行3D变换时在Chromium基础上的浏览器中,这个貌似是内核做了优化,当css动画知识改变transfrom和opacity时,整个CSS动画得以在compositor thread完成(而JS动画则会在main thread执行),这样css动画渲染不会影响主线程。总结

回归到日常开发中,当有一个动画的需求时,首要考虑的肯定是能不能尽可能实现的问题。如果在CSS动画和JS动画都能实现的基础上才会要去根据上面总结的权衡哪个性能更好的问题。总之,并不一定css动画就比js动画好,还得看具体的需求和业务场景。

学习视频分享:css视频教学、javascript学习教学


css3动画和js动画的区别是什么
  • css动画,过度 |emmet css快捷键
  • css动画,过度 |emmet css快捷键 | css动画,过度 |emmet css快捷键 ...

    css3动画和js动画的区别是什么
  • CSS3学习之页面加载动画(一)
  • CSS3学习之页面加载动画(一) | CSS3学习之页面加载动画(一) ...

    css3动画和js动画的区别是什么
  • dw怎么设置字体描边 - CSS - 前端,css中的布局
  • dw怎么设置字体描边 - CSS - 前端,css中的布局 | dw怎么设置字体描边 - CSS - 前端,css中的布局 ...