HTML5Canvas雪花动画特效
散开变大的雪花动画效果,视觉上挺带感,尤其适合用在冬日主题或圣诞页面上。用的是HTML5 Canvas来搞定的,雪花边飘边变大,看着就柔和,有种空间感。
动画是靠requestAnimationFrame来驱动的,一帧帧渲染,雪花的大小、位置、透明度都动态变化。每片雪花其实就是一个粒子,你可以设定它的速度、方向、旋转啥的,场景立马活起来。
写的时候可以封装个Snowflake类,管理起来清晰,扩展性也强。想加风向、重力啥的都好弄,直接在update()
方法里动手脚就行。Math.random()是个好帮手,想让雪花大小、速度都不一样,就靠它。
还有,别忘了每帧开始前用clearRect()
清下画布,不然会叠影。要让动画不卡,对象池可以安排上,别每次都new
雪花,复用一下省资源。
需要用到变换的时候,比如放大、旋转,可以用save()
、translate()
、scale()
和restore()
这几个 Canvas 变换方法。想让动画更自然,还可以加点alpha
渐变或者雪花漂浮路径。
想快速上手?你可以看看这些现成的资源包:html5canvas 雪花动画特效.zip、漫天飞雪动画特效都还不错,能学不少写法。
如果你正好在做节日页面、冬季活动,或者想给首页加点氛围感,这类 Canvas 动画还蛮值得一试的,视觉上挺讨喜,代码也不复杂。
下载地址
用户评论