首先可以来看下这个插件的demo:https://jnicol.github.io/particleground/
一种比较常见的粒子背景,有连线,有3d视差效果。
代码:github地址
源代码很短,本文也算不上啥解析文章,只是阅读笔记。
1.基本的粒子动画原理
在canvas画布上绘制复数实心圆点即粒子,每个粒子都有它的粒子对象实例,用于记录它的大小、位置信息以及速度,通过timeout来更新粒子的位置形成粒子动画。大概类似下面这样:
|
|
2.particleground源代码
该插件可作为jquery插件使用,同时也直接在window上挂载了相应方法,使用时只需传入舞台dom对象和配置信息即可。
|
|
此方法会去实例化Plugin构造函数,然而返回的是一个有闭包关系的对象。
如上,执行逻辑只有一个
init()
函数。
2.1 初始化 - init()
|
|
其中,在调用时就会执行的主要是
new Particle()
创建粒子对象,以及draw()
的绘制。
2.2 粒子构造函数 - Particle()
|
|
2.3 初始化完成,开始绘制 - draw()
|
|
如上,比较重要的就是粒子实例方法
.updatePosition()
2.4 计算粒子位置 - particle.updatePosition()
|
|
到此,粒子系统初始化到定时触发动画的代码大致就是这些了。