ZIP2023跨年代码(烟花+自定义文字+背景音乐+雪花+倒计时) 9.67KB

m0_63244368需要积分:1(1积分=1元)

资源文件列表:

fireworks-master.zip 大约有3个文件
  1. fireworks-master/index.html 19.58KB
  2. fireworks-master/js/
  3. fireworks-master/js/index.js 16.31KB

资源介绍:

时光荏苒,白驹过隙。 2022这一年又在忙碌中度过了,过去的一年,我们同努力,我们共欢笑,每一次成功都蕴藏着我们辛勤的劳动。 新的一年即将来到,我们不能停滞不前,一味只是骄傲。愿大家与时俱进,拼搏不懈,共创新的辉煌! 借着新年到来的喜庆,给大家分享一个新年烟花的前端代码,快拿着代码展示给你的朋友们看吧!! 转眼间已经到了2022的尾巴,这一年对于国家来说丰富充实,冬奥会在北京举行、中国共产党第二十次全国代表大会召开、社会共同抗击疫情的第三年、我国完成天宫空间站建造……对于我们每一个个体,2022也承载着我们的快乐与悲伤,它是无法替代的。 新的一年马上就要到了,让我们告别2022,迎接2023! 希望2023,全糖去冰。 ———————————————— 版权声明:本文为CSDN博主「Enovo_飞鱼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/m0_63244368/article/details/128431873 本文是一篇简单的前端代码,主要内容有HTML,JS,CSS等内容
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>时光荏苒,白驹过隙!</title> <style> html, body { margin: 0px; width: 100%; height: 100%; overflow: hidden; background: #000; } </style> </head> <body> <canvas id="canvas" style="position: absolute; width: 100%; height: 100%; z-index: 8888" ></canvas> <canvas style="position: absolute; width: 100%; height: 100%; z-index: 9999" class="canvas" ></canvas> <div class="overlay"> <div class="tabs"> <div class="tabs-labels"> <span class="tabs-label">Commands</span ><span class="tabs-label">Info</span ><span class="tabs-label">Share</span> </div> <div class="tabs-panels"> <ul class="tabs-panel commands"></ul> </div> </div> </div> <script> function initVars() { pi = Math.PI; ctx = canvas.getContext("2d"); canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; cx = canvas.width / 2; cy = canvas.height / 2; playerZ = -25; playerX = playerY = playerVX = playerVY = playerVZ = pitch = yaw = pitchV = yawV = 0; scale = 600; seedTimer = 0; (seedInterval = 5), (seedLife = 100); gravity = 0.02; seeds = new Array(); sparkPics = new Array(); s = "https://cantelope.org/NYE/"; for (i = 1; i <= 10; ++i) { sparkPic = new Image(); sparkPic.src = s + "spark" + i + ".png"; sparkPics.push(sparkPic); } sparks = new Array(); pow1 = new Audio(s + "pow1.ogg"); pow2 = new Audio(s + "pow2.ogg"); pow3 = new Audio(s + "pow3.ogg"); pow4 = new Audio(s + "pow4.ogg"); frames = 0; } function rasterizePoint(x, y, z) { var p, d; x -= playerX; y -= playerY; z -= playerZ; p = Math.atan2(x, z); d = Math.sqrt(x * x + z * z); x = Math.sin(p - yaw) * d; z = Math.cos(p - yaw) * d; p = Math.atan2(y, z); d = Math.sqrt(y * y + z * z); y = Math.sin(p - pitch) * d; z = Math.cos(p - pitch) * d; var rx1 = -1000, ry1 = 1, rx2 = 1000, ry2 = 1, rx3 = 0, ry3 = 0, rx4 = x, ry4 = z, uc = (ry4 - ry3) * (rx2 - rx1) - (rx4 - rx3) * (ry2 - ry1); if (!uc) return { x: 0, y: 0, d: -1 }; var ua = ((rx4 - rx3) * (ry1 - ry3) - (ry4 - ry3) * (rx1 - rx3)) / uc; var ub = ((rx2 - rx1) * (ry1 - ry3) - (ry2 - ry1) * (rx1 - rx3)) / uc; if (!z) z = 0.000000001; if (ua > 0 && ua < 1 && ub > 0 && ub < 1) { return { x: cx + (rx1 + ua * (rx2 - rx1)) * scale, y: cy + (y / z) * scale, d: Math.sqrt(x * x + y * y + z * z), }; } else { return { x: cx + (rx1 + ua * (rx2 - rx1)) * scale, y: cy + (y / z) * scale, d: -1, }; } } function spawnSeed() { seed = new Object(); seed.x = -50 + Math.random() * 100; seed.y = 25; seed.z = -50 + Math.random() * 100; seed.vx = 0.1 - Math.random() * 0.2; seed.vy = -1.5; //*(1+Math.random()/2); seed.vz = 0.1 - Math.random() * 0.2; seed.born = frames; seeds.push(seed); } function splode(x, y, z) { t = 5 + parseInt(Math.random() * 150); sparkV = 1 + Math.random() * 2.5; type = parseInt(Math.random() * 3); switch (type) { case 0: pic1 = parseInt(Math.random() * 10); break; case 1: pic1 = parseInt(Math.random() * 10); do { pic2 = parseInt(Math.random() * 10); } while (pic2 == pic1); break; case 2: pic1 = parseInt(Math.random() * 10); do { pic2 = parseInt(Math.random() * 10); } while (pic2 == pic1); do { pic3 = parseInt(Math.random() * 10); } while (pic3 == pic1 || pic3 == pic2); break; } for (m = 1; m < t; ++m) { spark = new Object(); spark.x = x; spark.y = y; spark.z = z; p1 = pi * 2 * Math.random(); p2 = pi * Math.random(); v = sparkV * (1 + Math.random() / 6); spark.vx = Math.sin(p1) * Math.sin(p2) * v; spark.vz = Math.cos(p1) * Math.sin(p2) * v; spark.vy = Math.cos(p2) * v; switch (type) { case 0: spark.img = sparkPics[pic1]; break; case 1: spark.img = sparkPics[parseInt(Math.random() * 2) ? pic1 : pic2]; break; case 2: switch (parseInt(Math.random() * 3)) { case 0: spark.img = sparkPics[pic1]; break; case 1: spark.img = sparkPics[pic2]; break; case 2: spark.img = sparkPics[pic3]; break; } break; } spark.radius = 25 + Math.random() * 50; spark.alpha = 1; spark.trail = new Array(); sparks.push(spark); } switch (parseInt(Math.random() * 4)) { case 0: pow = new Audio(s + "pow1.ogg"); break; case 1: pow = new Audio(s + "pow2.ogg"); break; case 2: pow = new Audio(s + "pow3.ogg"); break; case 3: pow = new Audio(s + "pow4.ogg"); break; } d = Math.sqrt( (x - playerX) * (x - playerX) + (y - playerY) * (y - playerY) + (z - playerZ) * (z - playerZ) ); pow.volume = 1.5 / (1 + d / 10); pow.play(); } function doLogic() { if (seedTimer < frames) { seedTimer = frames + seedInterval * Math.random() * 10; spawnSeed(); } for (i = 0; i < seeds.length; ++i) { seeds[i].vy += gravity; seeds[i].x += seeds[i].vx; seeds[i].y += seeds[i].vy; seeds[i].z += seeds[i].vz; if (frames - seeds[i].born > seedLife) { splode(seeds[i].x, seeds[i].y, seeds[i].z); seeds.splice(i, 1); } } for (i = 0; i < sparks.length; ++i) { if (sparks[i].alpha > 0 && sparks[i].radius > 5) { sparks[i].alpha -= 0.01; sparks[i].radius /= 1.02; sparks[i].vy += gravity; point = new Object(); point.x = sparks[i].x; point.y = sparks[i].y; point.z = sparks[i].z; if (sparks[i].trail.length) { x = sparks[i].trail[sparks[i].trail.length - 1].x; y = sparks[i].trail[sparks[i].trail.length - 1].y; z = sparks[i].trail[sparks[i].trail.length - 1].z; d = (point.x - x) * (point.x - x) + (point.y - y) * (point.y - y) + (point.z - z) * (point.z - z); if (d > 9) { sparks[i].trail.push(point); } } else { sparks[i].trail.push(point); } if (sparks[i].trail.length > 5) sparks[i].trail.splice(0, 1); sparks[i].x += sparks[i].vx; sparks[i].y += sparks[i].vy; sparks[i].z += sparks[i].vz; sparks[i].vx /= 1.075; sparks[i].vy /= 1.075; sparks[i].vz /= 1.075; } else {
100+评论
captcha
    类型标题大小时间
    ZIPXshell软件(配色方案&高亮关键字/突出显示集)的相关文件2.91KB1年前
    ZIP51单片机温度报警系统(实训资源整合.zip)3.16MB3年前
    ZIP重构-改善既有代码的设计12MB16年前
    ZIPjetty7.4.25.79MB13年前
    ZIP【樵夫教你学Python】Python全套教程 Python基础15.47MB2年前
    ZIP新的A星路径规划matlab文件合集.zip14.44KB4年前
    ZIPfullPage.js7.96MB10年前
    ZIPCentOS7Oracle11gInstallHelper.zip4.75MB4年前