js 使用雪花id生成随机id

https://www.jb51.net/article/194168.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 HTML5 的 Canvas 元素和 JavaScript 来实现雪花飘飘的效果,以下是一个简单的实现代码: ```html <canvas id="canvas"></canvas> <script> // 获取 Canvas 元素 var canvas = document.getElementById('canvas'); // 获取 Canvas 上下文 var ctx = canvas.getContext('2d'); // 设置 Canvas 大小 canvas.width = window.innerWidth; canvas.height = window.innerHeight; // 雪花数组 var snowflakes = []; // 创建雪花对象 function createSnowflake() { return { x: Math.random() * canvas.width, y: -10, radius: Math.random() * 4 + 1, speed: Math.random() * 3 + 1, angle: Math.random() * 360, opacity: Math.random() }; } // 添加雪花到数组中 for (var i = 0; i < 100; i++) { snowflakes.push(createSnowflake()); } // 绘制雪花 function drawSnowflake(snowflake) { ctx.beginPath(); ctx.arc(snowflake.x, snowflake.y, snowflake.radius, 0, Math.PI * 2); ctx.fillStyle = 'rgba(255, 255, 255, ' + snowflake.opacity + ')'; ctx.fill(); } // 更新雪花位置 function updateSnowflake(snowflake) { snowflake.x += Math.cos(snowflake.angle) * snowflake.speed; snowflake.y += Math.sin(snowflake.angle) * snowflake.speed; // 如果雪花超出屏幕范围,则重新生成 if (snowflake.x > canvas.width + 5 || snowflake.x < -5 || snowflake.y > canvas.height) { var index = snowflakes.indexOf(snowflake); snowflakes.splice(index, 1); snowflakes.push(createSnowflake()); } } // 循环绘制雪花 function loop() { ctx.clearRect(0, 0, canvas.width, canvas.height); for (var i = 0; i < snowflakes.length; i++) { drawSnowflake(snowflakes[i]); updateSnowflake(snowflakes[i]); } requestAnimationFrame(loop); } // 开始循环绘制 loop(); </script> ``` 在上面的代码中,我们先创建了一个 Canvas 元素,并获取了它的上下文。然后,我们创建了一个雪花数组,用于存储雪花对象。接着,我们循环添加雪花到数组中,每个雪花都有随机的位置、大小、速度和透明度。然后,我们编写了 `drawSnowflake` 函数和 `updateSnowflake` 函数,用于绘制和更新雪花的状态。最后,我们使用 `requestAnimationFrame` 函数来不断地循环执行 `loop` 函数,以达到雪花飘飘的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值