最近在实现一些视觉效果比较动感的页面,需要一个气泡生成的动画,所以写了这段代码。逻辑首先需要传入一个canvasdom,获取它的宽高,初始化并声明一个特定长度的泡泡数组(长度可以从外部传入),每个泡泡都有半径,速度,和初始位置。然后需要执行绘制方法,每次绘制前调用clearRect()清空画布,然后window.requestAnimationFrame()循环调用绘制方法。绘制气泡初始化时,位置可以随意,也可以全部在底部生成。每次气泡的高度和位置发生变化,当它到达画布的顶部时,它会从底部重新出现。代码classBubbleAnimate{constructor(canvas,number=20,radius=6,color=[255,255,255],speed=0.2,speedRandomPercent=0.5,startFull=true){try{this.canvas=canvas;}catch{throw("请提供canvasdom");返回;}this.ctx=canvas.getContext('2d');this.width=canvas.width;this.height=canvas.height;this.radius=半径;this.color=颜色;this.speed=速度;this.bubbles=[];this.speedRandomPercent=speedRandomPercent;this.startFull=startFull;for(leti=0;i
