js学习—在canvas画布上的粒子扩散

这篇博客探讨了如何在HTML5 canvas上利用javascript实现粒子扩散动画。通过监听鼠标移动事件,结合requestAnimationFrame实现平滑动画效果。采用面向对象的方式,定义粒子的属性如坐标、半径、颜色及运动轨迹。尽管目前存在颜色选择有限、高光效果未能实现以及随机角度移动的挑战,代码已分享供进一步研究和改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次内容是在看完腾讯课堂的公开课后,结合笔记,自己在电脑上实现的效果(所以有些代码部分可能类似)。


要实现的效果:鼠标移动时,产生颜色大小不同的粒子,粒子移动直至消失。


做出来的效果和和我想要的效果不太一样,还是有些问题。接下来我们还是分析一下。

首先我们很明显的要写一个鼠标移动事件:

canvas.addEventListener('mousemove',create,false);//监听鼠标移动事件

create是鼠标移动后要做的事。

然后我们要做动画,这里采用的是requestAnimationFrame()。这是一个类似于setInterval的函数,区别在于requestAnimationFrame是不间隔执行的。

要产生粒子,即要在canvas上画圆。因为每个圆都有它的坐标,半径,颜色,还有它的运动,所以我们采用面向对象来做,如下:

function Particle(){//创建对象
	
}

Particle.prototype = {//实例化对象
	init:function(x,y,radius){
		this.x = x || 0.0;
		this.y = y || 0.0;
		this.radius = radius || 10;
		this.color = colors[random(0,7)];
	},

	draw:function(){//绘制一个粒子
		ctx.beginPath();
		ctx.arc(this.x,this.y
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值