动态爱心的js代码(情人节程序员必备)

这段代码演示了一个使用JavaScript在Canvas上生成随机颜色的心形动画,心形会动态移动并改变颜色。它首先定义了颜色数组、心形的宽高,然后创建并绘制初始心形,最后通过定时器更新心形的位置和颜色,实现动态效果。

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

<script type="text/javascript">

//随机颜色

var colorArr = ["#212121", "#757575", "#A1D980", "#F0D56E", "#EE83AE", "#FFC2C2", "#F9A7B0"];

// 定义宽高,不足20整20变

var w = Math.max(20, Math.floor(Math.random() * 20)) * 20;

var h = Math.max(20, Math.floor(Math.random() * 20)) * 20;

// 创建心形初始状态

var r = w / 2;

var left = r;

var top = 0;

// 创建画布,将初始心形绘制出来

document.write("<canvas id='love' width='" + w + "' height='" + h + "'>您的浏览器不支持Canvas</canvas>");

var can = document.getElementById("love");

var ctx = can.getContext("2d");

ctx.fillStyle = colorArr[Math.floor(Math.random()*colorArr.length)];

ctx.beginPath();

ctx.arc(r, r, r, 0, Math.PI, true);

ctx.arc(r, r, r, Math.PI, 0, true);

ctx.closePath();

ctx.fill();

// 动态

setInterval(function(){

ctx.clearRect(0, 0, w, h);

top -= 0.3;

if (top < -(h/2)){

top = 0;

}

left += 0.15;

if (left > w/2){

left = r;

}

ctx.fillStyle = colorArr[Math.floor(Math.random()*colorArr.length)];

ctx.beginPath();

ctx.arc(left, top, r, 0, Math.PI, true);

ctx.arc(left,top, r, Math.PI, 0, true);

ctx.closePath();

ctx.fill();

},30)

</script>


关注小世学长不迷路,带你见识更多的小程序(小游戏)!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值