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作为背景,会看起来更加生动,效果更好。