
一款好看的html5 canvas跟随鼠标光标移动出现的圆点泡泡动画特效,跟随鼠标运动轨迹出现并很快消失。
js代码
<script src=\"underscore.js\" type=\"text/javascript\" charset=\"utf-8\"></script>
<script type=\"text/javascript\">
//设置画布
const canvas=document.getElementById(\"canvas\");
const ctx=canvas.getContext(\'2d\');
canvas.width=1000;
canvas.height=400;
canvas.style.backgroundColor=\"#000\";
//小球类
class Ball{
constructor(x,y,color){
this.x=x;
this.y=y;
this.color=color;
this.r=40;
}
//绘制小球
render(){
ctx.save();
ctx.beginPath();
ctx.arc(this.x,this.y,this.r,0,Math.PI * 2);
ctx.fillStyle=this.color;
ctx.fill();
ctx.restore();
}
}
//会移动的小球类
class MoveBall extends Ball{
constructor(x,y,color){
super(x,y,color);
//量的变化
this.dX=_.random(-5,5);
this.dY=_.random(-5,5);
this.dR=_.random(1,3);
}
upDate(){
this.x += this.dX;
this.y += this.dY;
this.r -= this.dR;
if (this.r < 0) {
this.r = 0;
}
}
}
let ballArr=[];
let colorArr=[\'red\',\'green\',\'purple\',\'blue\',\'orange\',\'pink\'];
canvas.addEventListener(\'mousemove\',function (e) {
ballArr.push(new MoveBall(e.offsetX,e.offsetY,colorArr[_.random(0,colorArr.length-1)]));
})
setInterval(function(){
ctx.clearRect(0,0,canvas.width,canvas.height);
for (let i=0;i<ballArr.length;i++) {
ballArr[i].render();
ballArr[i].upDate();
}
},50);
</script>










暂无评论内容