大半夜睡不着,来个雪花动画
2021/8/21 6:06:09
本文主要是介绍大半夜睡不着,来个雪花动画,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
效果:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: 0; padding: 0; } </style> </head> <body> <canvas id="canvas" style="border: 1px solid; background-color: #000000"></canvas> <script> const cvs = document.getElementById('canvas'); const ctx = cvs.getContext('2d'); // 初始化宽高 const screenSize = {width: window.screen.width, height: window.screen.height} cvs.setAttribute('width', screenSize.width); cvs.setAttribute('height', screenSize.height); // 随机一个坐标点 function randomPos() { const x = Math.ceil(Math.random() * screenSize.width); const y = Math.ceil(Math.random() * screenSize.height); return {x, y} } function randomSnow() { const p = randomPos(); const r = Math.floor(Math.random() * 3); const dis = Math.ceil(Math.random() * 4); const blur = 5 + Math.ceil(Math.random() * 5); proSnow(p, r, blur); return {p: p, r: r, dis: dis, blur: blur}; } function proSnow(p, r, blur) { ctx.beginPath(); ctx.arc(p.x, p.y, r, 0, Math.PI * 2 * 180); ctx.strokeStyle = '#FFF'; ctx.fillStyle = '#FFF'; ctx.stroke(); ctx.fill(); ctx.shadowBlur = blur; ctx.shadowColor = "#FFF"; ctx.closePath(); } // 随机生产雪花 const snows = []; for (let i = 0; i < 500; i++) { snows.push(randomSnow()); } // 让雪花飘起来 setInterval(() => { startSnow(); }, 60) function startSnow() { ctx.clearRect(0, 0, screenSize.width, screenSize.height); for (const snow of snows) { snow.p.y = snow.p.y + snow.dis; if (snow.p.y > screenSize.height) { snow.p.y = -10; snow.dis = Math.ceil(Math.random() * 4); } proSnow(snow.p, snow.r, snow.blur); } } // const animationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame; // window.requestAnimationFrame(startSnow) </script> </body> </html>
这篇关于大半夜睡不着,来个雪花动画的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南