CSS3动画和js动画各有什么优劣

JavaScript013

CSS3动画和js动画各有什么优劣,第1张

CSS3的动画的优点:

1.在性能上会稍微好一些,浏览器会对CSS3的动画做一些优化(比如专门新建一个图层用来跑动画)

2.代码相对简单

但其缺点也很明显:

1.在动画控制上不够灵活

2.兼容性不好

3.部分动画功能无法实现(如滚动动画,视差滚动等)

JavaScript的动画正好弥补了这两个缺点,控制能力很强,可以单帧的控制、变换,同时写得好完全可以兼容IE6,并且功能强大。但想想CSS动画的transform矩阵是C++级的计算,必然要比javascript级的计算要快。另外对库的依赖也是一个很让人头疼的问题。

所以,对于一些复杂控制的动画,使用javascript会比较靠谱。而在实现一些小的交互动效的时候,就多考虑考虑CSS吧。

最近做了一个PC站首页demo,为了让页面不至于太死板,在背景上给一些模块加入了这种粒子效果,

移动端demo: https://lavendergirl.github.io/particles/mobile-index.html

PC端demo: https://lavendergirl.github.io/particles/index.html

线上test: https://codepen.io/VincentGarreau/pen/pnlso

如果需要看源码实现可以在github上看看: https://github.com/lavenderGirl/particles

具体实现:

配置可参考: https://www.cnblogs.com/wangyihong/p/8618305.html

当然也可直接看 https://github.com/VincentGarreau/particles.js

通过不同的配置可以实现很多不一样的效果哦。动手去试试吧。

没做这个之前,都不知道这叫什么,只知道有时候会在一些网站上看到,也没太注意,真正想要用的时候,不知道去搜什么,所在在找的过程中也花了一点时间,如果你也需要这种效果,那么这篇文章适合你看看哦。

不是每一次努力都有收获,但是,每一次收获都必须努力。加油。

我们发现很多动效都和canvas有关,我们可以绘制一块canvas作为背景,可以和canvas动画相联系,下面我们就绘制一块移动的小圆点动效图。

在HTML上canvas只需要一句话来展示,因此canvas的动画效果主要通过js来实现。在HTML上:

为了使canvas和页面上其他组件一同显示,且不影响页面其他组件展示,我们将canvas的position设置成fixed:

1、在js中,先获取画布: var  canvas  =  document .getElementById( 'myCanvas' )

2、渲染上下文:元素创造了一个固定大小的画布,它公开了一个或多个 渲染上下文 ,其可以用来绘制和处理要展示的内容。我们将会将注意力放在2D渲染上下文中: var  ctx = canvas .getContext( '2d' )我们可以根据这个ctx来判断浏览器是否支持canvas。

3、初始化数据,设置canvas的大小:我们将宽高设置成页面的宽高:

4、为了使小圆点不那么单调,我们设置了彩色效果,定义了一些函数来设置颜色:

5、我们创建的每一个函数,都可以有一个prototype属性,该属性指向一个对象。这个原型对象。可以根据自己的需求,选择性的将一些属性和方法通过prototype属性,挂载在原型对象通过这个属性,让实例对象也能够访问原型对象上的方法,绘制方法挂载到点对象上:

6、圆点生成以及移动:

7、最后将动画效果设置上去:

如果使用这样的canvas作为背景,会看起来更加生动,效果更好。