CSS3动画与JS动画的优缺点?

JS动画:

  缺点:1.JS在浏览器的主线程中运行,而主线程还有其他的js脚本,样式布局,绘制任务等,对其干扰可能导致线程出现阻塞,从而造成丢帧的情况。

     2.JS动画代码复杂度高于CSS3动画。

  优点:1.JS动画控制能力很强,可以在动画播放过程中对动画进行控制,使其开始或停止。

     2.动画效果比CSS3动画丰富,有些动画只有JS动画才能实现,比如曲线运动,冲击闪烁等。

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

CSS3动画:

  缺点:

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

     2.代码冗长。想用CSS3实现稍微复杂一点的动画,最后CSS代码都会变得特别笨重。

  优点:

     1.浏览器可以对动画进行优化。

结论:

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

原文地址:https://www.cnblogs.com/lou-0820/p/10535350.html

时间: 2024-10-17 15:08:56

CSS3动画与JS动画的优缺点?的相关文章

Web高性能动画及渲染原理(1)CSS动画和JS动画

目录 一. CSS动画 和 JS动画 1.1 CSS动画 1.2 JS动画 1.3 小结 二. 使用Velocity.js实现动画 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文目录 华为云社区地址:[你要的前端打怪升级指南] 一. CSS动画 和 JS动画 Web动画的本质是元素状态改变造成的样式变更,CSS动画和JS动画的区别并不是由语言来决定的,而是由两者的特点和适用场景来判断的.CSS动画简洁高效,

关于JS动画和CSS3动画的性能差异

本文章为综合其它资料所得. 根据Google Developer,Chromium项目里,渲染线程分为main thread和compositor thread.如果CSS动画只是改变transforms和opacity,这时整个CSS动画得以在compositor thread完成(而JS动画则会在main thread执行,然后触发compositor进行下一步操作)在JS执行一些昂贵的任务时,main thread繁忙,CSS动画由于使用了compositor thread可以保持流畅,可

显示层封装及实现与优化(无动画+css3动画+js动画)

showhide.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>showhide</title> <link rel="stylesheet" href="../css/base.css"> <style> body{ width

JS动画和CSS动画

一. JS动画和CSS动画区别. CSS实现动画:animation transition transform JS实现动画:setInterval  setTimeout  requestAnimationFrame JS动画: 优点: 1. 过程控制,可以在动画播放过程中对动画进行控制:开始.暂停.回放.终止.取消都是可以做到的. 2. 动画效果比css3动画丰富,有些动画效果,比如曲线运动,冲击闪烁,视差滚动效果,只有JavaScript动画才能完成. 3. CSS3有兼容性问题,而JS大

Bounce.js-可视化CSS3动画代码生成js插件

Bounce.js是一款功能非常强大的可视化CSS3动画代码生成js库插件.该js库插件提供了一个在线APP,通过该APP可以在可视化的条件下编辑CSS3的各种动画效果.此外,你也可以单独使用Bounce.js,通过js代码来完成各种CSS3动画效果. Bounce.js能与jQuery完美结合. 在线演示:http://www.htmleaf.com/Demo/201502231412.html 下载地址:http://www.htmleaf.com/css3/css3donghua/2015

可视化CSS3动画代码生成js库插件-Bounce.js

简要教程 Bounce.js是一款功能非常强大的可视化CSS3动画代码生成js库插件.该js库插件提供了一个在线APP,通过该APP可以在可视化的条件下编辑CSS3的各种动画效果,如移动.旋转.倾斜.easing等效果,编辑完成后可以直接获取该CSS3帧动画的代码,复制代码到你的页面中即可在你的页面上获得与该动画一样的效果.此外,你也可以单独使用Bounce.js,通过js代码来完成各种CSS3动画效果.Bounce.js能与jQuery完美结合. 查看演示     下载插件 安装 可以通过Bo

一款模拟CSS3动画的js插件-move.js

Move.js是一款简单小巧的模拟CSS3动画的js插件.该插件可以完成CSS3的各种动画效果:移动.变形.倾斜.背景色渐变.旋转等.并且可以在动画中使用各种easing效果. 类似插件可参考:可替代CSS3 transition和transform的jQuery插件. 在线演示:http://www.htmleaf.com/Demo/201501281292.html 下载地址:http://www.htmleaf.com/jQuery/Layout-Interface/20150128129

js 动画方法之requestAnimationFrame

js动画实现的方法到现在有三种 1 css3: 通过animattion+keyframes;或 transition 2. setTimeout/setInterval: setTimeout/setInterval:通过递归调用同一方法来不断更新动画元素以达到动起来的效果,动画过度绘制,浪费 CPU 周期以及消耗额外的电能等问题. 3.requestAnimationFrame: requestAnimationFrame:是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用

css3 实现逐帧动画

实现逐帧动画需要使用到的是Animation动画,该CSS3的Animation有八个属性:分别是如下:1: animation-name2: animation-duration3: animation-delay4: animation-iteration-count5: animation-direction6: animation-play-state7: animation-fill-mode8: animation-timing-function 含义分别如下:animation-n