前言
大一还是能源院的时候选了一门计科的web课,那会儿对于写代码纯粹是一腔热血,虽然对于html各种语法都还不熟悉,参照着网上各种代码也能照葫芦画瓢地模仿、修改,最终实现自己想要的效果。这个流星雨特效就是参考了一个烟火特效的代码写出来的,可以说基本逻辑是差不多的。还记得是先看了很多遍别人的代码是怎么写的,函数又是怎么写的,之后修修补补改了一两个星期才做完的,最后拿去当web程序设计这门课的大作业之一。之后又再次基础上完成了完全不同的烟火特效。
烟火这个比流星雨那个更加复杂,设计了几种不同的模式,不过这里还要吐槽一下当时的自己,完全不懂内存的开辟和释放,运行时间一长就会越来越卡直到内存爆炸,那会还以为是电脑不行导致的😀
效果都比较好看,具体代码已经放到github中
效果
关于html动态效果的心得经验
一个好用的工具
一开始想到做动态效果的时候,我是直接上手就写,然而在没有经验的情况下,不仅bug频出,效果也不好,甚至完全做不出效果(一开始尝试的递归法动态樱花树以失败告终)。后来,我学习前辈的经验,找到了一个函数requestAnimationFrame,不仅省了时间,效果也很好。这样一来我需要考虑的就只有怎么丰富,完善我的效果。当然,我也看过很多炫酷的立体效果,那些几乎都是用了一些专门的插件。所以选择一个好用的工具很重要。
多学习别人的代码
我认为,不管是html,js还是别的什么语言,学习别人的代码都是很有必要的。在什么都不懂或是知识匮乏的情况下,闭门造车是很愚蠢的行为。我一开始想要将樱花树代码改为动态的,一个人苦思冥想,试了很多方法都没有成功,后来看了别人的代码我才知道我一开始就用错了方法(不该用递归)。我当初学习烟花这个代码,也是第一次写这么长的代码,连着很多天从早到晚,一边学习一边自己写。虽然花了很长时间,但是效果很显著,通过在原本的代码上修修改改就能做出完全不同的效果,也可以把我心中的一些想法通过这样的框架实现出来(只用两个小时就自己做出流星雨效果),类似的动态效果也可以很快实现。
动态效果的一些用途
拿我自己举例,我将烟花效果用在了简历上,为了避免太乱,简化删除了很多效果,在加上了监测鼠标坐标的函数后,也增加了交互性,不仅漂亮而且有趣。很多有意思的网站也会有一些有趣的动态效果,都能大大增加网站的吸引力。