【酷炫烟花特效表白(Html5,程序员进阶知识点

效果演示


(同时也会有歌曲播放的哦!背景等都可以根据自己个人意愿来更改~)

这是第一种选择的部分效果展示:

在这里插入图片描述

这是第二种选择的部分效果展示:

在这里插入图片描述

代码片段


烟花.html

放烟花

小姐姐,我好喜欢你,你愿意做我女朋友吗?

愿意
不愿意

浏览器不支持canvas

520

I LOVE YOU

茫茫人海

相遇是缘

fire.js

var canvas = document.getElementById(“cas”);

var ocas = document.createElement(“canvas”);

var octx = ocas.getContext(“2d”);

var ctx = canvas.getContext(“2d”);

ocas.width = canvas.width = window.innerWidth;

ocas.height = canvas.height = window.innerHeight;

var bigbooms = [];

document.getElementById(“iframMusic”).onload = function(){

var music = document.getElementById(“music”);

music.src = ‘music.mp3’;

music.oncanplay = function(){

music.play();

};

};

function initAnimate() {

drawBg();

lastTime = new Date();

animate()

}

var lastTime;

function animate() {

ctx.save();

ctx.fillStyle = “rgba(0,5,24,0.1)”;

ctx.fillRect(0, 0, canvas.width, canvas.height);

ctx.restore();

var newTime = new Date();

if (newTime - lastTime > 500 + (window.innerHeight - 767) / 2) {

var random = Math.random() * 100 > 33 ? true: false;

var x = getRandom(canvas.width / 5, canvas.width * 4 / 5);

var y = getRandom(50, 200);

if (random) {

var bigboom = new Boom(getRandom(canvas.width / 3, canvas.width * 2 / 3), 2, “#FFF”, {

x: x,

y: y

});

bigbooms.push(bigboom)

} else {

var bigboom = new Boom(getRandom(canvas.width / 3, canvas.width * 2 / 3), 2, “#FFF”, {

x: canvas.width / 2,

y: 200

},

document.querySelectorAll(“.shape”)[parseInt(getRandom(0, document.querySelectorAll(“.shape”).length))]);

bigbooms.push(bigboom)

}

lastTime = newTime;

console.log(bigbooms)

}

stars.foreach(function() {

this.paint()

});

drawMoon();

bigbooms.foreach(function(index) {

var that = this;

if (!this.dead) {

this._move();

this._drawLight()

} else {

this.booms.foreach(function(index) {

if (!this.dead) {

this.moveTo(index)

} else {

if (index === that.booms.length - 1) {

bigbooms[bigbooms.indexOf(that)] = null

}

}

})

}

});

raf(animate)

}

function drawMoon() {

var moon = document.getElementById(“moon”);

var centerX = canvas.width - 200,

centerY = 100,

width = 80;

if (moon.complete) {

ctx.drawImage(moon, centerX, centerY, width, width)

} else {

moon.onload = function() {

ctx.drawImage(moon, centerX, centerY, width, width)

}

}

var index = 0;

for (var i = 0; i < 10; i++) {

ctx.save();

ctx.beginPath();

ctx.arc(centerX + width / 2, centerY + width / 2, width / 2 + index, 0, 2 * Math.PI);

ctx.fillStyle = “rgba(240,219,120,0.005)”;

index += 2;

ctx.fill();

ctx.restore()

}

}

Array.prototype.foreach = function(callback) {

for (var i = 0; i < this.length; i++) {

if (this[i] !== null) {

callback.apply(this[i], [i])

}

}

};

var raf = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||

function(callback) {

window.setTimeout(callback, 1000 / 60)

};

canvas.onclick = function() {

var x = event.clientX;

var y = event.clientY;

var bigboom = new Boom(getRandom(canvas.width / 3, canvas.width * 2 / 3), 2, “#FFF”, {

x: x,

y: y

});

bigbooms.push(bigboom)

};

var Boom = function(x, r, c, boomArea, shape) {

this.booms = [];

this.x = x;

this.y = (canvas.height + r);

this.r = r;

this.c = c;

this.shape = shape || false;

this.boomArea = boomArea;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

为了帮助大家更好的了解前端,特别整理了《前端工程师面试手册》电子稿文件。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-axbRCKDW-1711811488650)]

最后

为了帮助大家更好的了解前端,特别整理了《前端工程师面试手册》电子稿文件。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 19
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的HTML5表白代码示例,其中包含弹窗效果: ```html <!DOCTYPE html> <html> <head> <title>520表白</title> <meta charset="utf-8"> <style type="text/css"> body { background: #f7f7f7; font-family: Arial, sans-serif; } .container { width: 400px; margin: 50px auto; background: #fff; padding: 20px; text-align: center; border-radius: 5px; box-shadow: 0 3px 10px rgba(0,0,0,0.2); } h1 { font-size: 36px; color: #f00; margin-bottom: 20px; } .btn { display: inline-block; background: #f00; color: #fff; padding: 10px 20px; border-radius: 5px; text-decoration: none; margin-top: 20px; transition: all 0.3s ease; cursor: pointer; } .btn:hover { background: #800000; } </style> </head> <body> <div class="container"> <h1>亲爱的XXX:</h1> <p>今天是520,我想对你说......</p> <button class="btn" onclick="showDialog()">点击查看表白</button> </div> <div id="dialog" style="display: none;"> <div class="container"> <h1>我喜欢你,愿意做你的程序员小伙伴!</h1> <p>520快乐!</p> <button class="btn" onclick="hideDialog()">关闭</button> </div> </div> <script type="text/javascript"> function showDialog() { document.getElementById('dialog').style.display = 'block'; } function hideDialog() { document.getElementById('dialog').style.display = 'none'; } </script> </body> </html> ``` 在此示例中,我们使用了一个DIV元素来创建弹出窗口。初始情况下,该元素被设置为隐藏。当用户单击“点击查看表白”按钮时,JavaScript函数showDialog()将被调用,以显示该元素。同样,当用户单击“关闭”按钮时,JavaScript函数hideDialog()将被调用,以隐藏该元素。 请注意,这只是一个简单的示例。如果您想要更多的交互性和动画效果,您可能需要使用JavaScript或CSS动画库等其他技术来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值