生日祝福网页(HTML5生日快乐在线网页祝福 HTML+CSS+JavaScript)

发布时间:2025-12-10 19:26:33 浏览次数:4

HTML5生日快乐在线网页祝福 HTML+CSS+JavaScript-生日祝福网页在线制作

HTML5生日快乐在线网页祝福 (一场浪漫的烟花秀) HTML+CSS+JavaScript????网站文件方面:html网页结构文件、css网页样式文件、js网页特效文件、images网页图片文件;????网页编辑方面:可使用任意HTML编辑软件(如:等任意html编辑软件进行运行及修改编辑等操作)。其中:(1)????html文件包含:其中index.html是首页、其他html为二级页面;(2)????css文件包含:css全部页面样式,3D动态效果,雪花飘落等等(3)????js文件包含:页面炫酷效果实现14-html5canvas生日快乐文字烟花背景动画特效????JS代码五、????更多

❤ 精彩专栏推荐????????????????????????
???? 作者主页: 【进入主页—????获取更多源码】
???? web前端期末大作业: 【????HTML5网页期末作业 (1000套) 】
???? 程序员有趣的告白方式:【????HTML七夕情人节表白网页制作 (125套) 】
七夕来袭!是时候展现专属于程序员的浪漫了!你打算怎么给心爱的人表达爱意?鲜花礼物?代码表白?还是创意DIY?或者…无论那种形式,快来秀我们一脸吧!


????文章目录

二、????网站介绍 三、????网站效果 ▶️1.视频演示 ???? 2.图片演示 四、???? 网站代码 ????HTML结构代码 ????JS代码 五、????更多源码

二、????网站介绍

????网站文件方面:html网页结构文件、css网页样式文件、js网页特效文件、images网页图片文件;

????网页编辑方面:可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad++ 等任意html编辑软件进行运行及修改编辑等操作)。
其中:
(1)????html文件包含:其中index.html是首页、其他html为二级页面;
(2)???? css文件包含:css全部页面样式,3D动态效果,雪花飘落等等
(3)???? js文件包含:页面炫酷效果实现


三、????网站效果

▶️1.视频演示

14-html5 canvas生日快乐文字烟花背景动画特效

???? 2.图片演示


四、???? 网站代码

????HTML结构代码

<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><title>烟火</title><script src="js/jquery.min.js"></script><script src="js/canvas.js"></script><script src="js/deepCopy.js"></script><script src="js/Firework.js"></script></head><body><canvas  width="500" height="500"></canvas>   <script> var canvas = $$("canvas"), ctx = canvas.getContext("2d"), g = 0.25,//模拟重力加速度 n = 5,//一次性发射的烟火的数量 fireworkList = [],//存放所有烟火对象 //烟火形状 圆形 椭圆形 爱心形 fireworkTypeList = [createCircleFirework, createEllipseFirework, createHeartFirework], totalNum = 0,//发射烟火的总数量 surprise_num = 25,//当发射烟火数量达到25时,发射生日快乐字样的烟火 flag = true;//是否发射生日快乐字样的烟火 canvas.width = $(window).width() - 15; canvas.height = $(window).height() - 20; var init = function(firework,params){ //初始化一个烟火 var beforeBalst = firework.getBeforeBalst(); firework.setCtx(ctx); firework.setStatus(1);//状态为点燃引线 firework.setNum(100 + Math.floor(20 * Math.random()));//爆炸之后的烟花数量 firework.setRoundness(getType(params) == "object" ? (getType(params.roundness) == "number" ? params.roundness : 0.25) : 0.25);//默认的规则度是0.25,这样爆炸的烟花与真实的最像 //firework.setFireworkType(getType(params) == "object" ? params.fireworkType : fireworkTypeList[Math.floor(Math.random() * fireworkTypeList.length)]);//从三种形状中随机烟花形状 firework.setFireworkType(getType(params) == "object" ? params.fireworkType : createCircleFirework);//默认圆形烟花 firework.setDelay(Math.floor(30 * Math.random()));//引线燃烧的时间,单位为帧, 最多30帧,即0.5s beforeBalst.setAnimate({  quiescence : { //发射位置为底部中间 x : canvas.width / 2, y : canvas.height, deg : 0, zoom : 1 },move : { //发射速度向量 vx : -7 + 14 * Math.random(), vy : -22 + 4 * Math.random(), pal : 0, scale : 0 },translate : { //发射加速度,有一个为g的重力加速度 ax : 0, ay : g, apal : 0, scale : 0 } }); beforeBalst.setR(3);//烟火半径为3像素 beforeBalst.setColor("#FFFFFF");//白色 beforeBalst.setLife(50 + Math.floor(Math.random() * 50));//烟花从发射到爆炸的时间,单位为帧,即50-100帧后爆炸 beforeBalst.setBase();//记录烟花发射的初始状态 } for(var i = 0; i < n; i++){ //初始化n个烟火 var firework = Firework.getInstance(); init(firework); fireworkList.push(firework); totalNum++; } var draw = function(){ //描绘每一帧烟火的状态 //整个canvas充满黑幕,模拟黑夜 ctx.globalCompositeOperation = 'source-over'; ctx.globalAlpha = 0.2; ctx.fillStyle = '#000003'; ctx.fillRect(0, 0, canvas.width, canvas.height); //描绘每个烟火的状态 ctx.globalCompositeOperation = 'screen'; $.each(fireworkList,function(index,value){  value.draw(); }); }; var update = function(){ //更新每一帧烟火的状态 for(var i = fireworkList.length - 1; i >= 0; i--){  fireworkList[i].update();//更新 if(fireworkList[i].getStatus() == 5){ //烟火消失 fireworkList.splice(i,1);//在烟火集合中将这个烟火去除掉 if(totalNum < surprise_num){ //当发射烟火数量没到25 var firework = Firework.getInstance();//继续生成新的烟火 init(firework); fireworkList.push(firework); totalNum++; } if(fireworkList.length == 0 && flag){ //发射生日快乐烟火和一箭穿心烟火 var firework = Firework.getInstance(); init(firework,{ fireworkType:createCustomFirework,roundness:1}); fireworkList.push(firework); var firework2 = Firework.getInstance(); init(firework2,{ fireworkType:createDoubleHeartFirework,roundness:1}); fireworkList.push(firework2); flag = false; } } } } var loop = function(){  draw(); update(); requestAnimationFrame(function(){ //每秒触发60次的方法,因此动画是60帧的 loop(); }); }; loop(); </script></body></html>

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…

????JS代码

/** * 获取变量类型 */function getType(obj){ var toString = Object.prototype.toString;var map = { '[object Boolean]'  : 'boolean', '[object Number]'   : 'number', '[object String]'   : 'string', '[object Function]' : 'function', '[object Array]'    : 'array', '[object Date]'     : 'date', '[object RegExp]'   : 'regExp', '[object Undefined]': 'undefined','[object Null]'     : 'null', '[object Object]'   : 'object'}; if(obj instanceof Element) { return 'element';}return map[toString.call(obj)];}/** * 利用递归实现深拷贝 */function deepCopy(data){ var type = getType(data);var obj;if(type === 'array'){ obj = [];} else if(type === 'object'){ obj = { };} else { //不再具有下一层次return data;}if(type === 'array'){ for(var i = 0, len = data.length; i < len; i++){ obj.push(deepCopy(data[i]));}} else if(type === 'object'){ for(var key in data){ obj[key] = deepCopy(data[key]);}}return obj;}

五、????更多源码

1.如果我的博客对你有帮助 请 “????点赞” “✍️评论” “????收藏” 一键三连哦!

2.????【????????????????????????????关注我| 获取更多源码】 带您学习各种前端插件、3D炫酷效果、图片展示、文字效果、以及整站模板 、大学生毕业HTML模板 、等!

????以上内容技术相关问题????欢迎一起交流学习????????????????????????

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477