1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > HTML5七夕情人节表白网页制作【canvas生日快乐文字烟花背景动画特效】HTML+CSS+JavaSc

HTML5七夕情人节表白网页制作【canvas生日快乐文字烟花背景动画特效】HTML+CSS+JavaSc

时间:2022-05-02 17:52:15

相关推荐

HTML5七夕情人节表白网页制作【canvas生日快乐文字烟花背景动画特效】HTML+CSS+JavaSc

这是程序员表白系列中的100款网站表白之一,旨在让任何人都能使用并创建自己的表白网站给心爱的人看。 此波共有100个表白网站,可以任意修改和使用,很多人会希望向心爱的男孩女孩告白,生性腼腆的人即使那个TA站在眼前都不敢向前表白。说不出口的话就用短视频告诉TA吧~制作一个表白网页告诉TA你的心意,演示如下。

文章目录

一、网页介绍一、网页效果二、代码展示1.HTML代码2.JS代码三、精彩专栏

一、网页介绍

1 网页简介:基于HTML+CSS+JavaScript 制作七夕情人节表白网页、生日祝福、七夕告白、 求婚、浪漫爱情3D相册、炫酷代码,快来制作一款高端的表白网页送(他/她)浪漫的告白,制作修改简单,可自行更换背景音乐,文字和图片即可使用

2.网页编辑:任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad++等任意html编辑软件进行运行及修改编辑等操作)。

一、网页效果

二、代码展示

1.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 id="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.5sbeforeBalst.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){//当发射烟火数量没到25var 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>

2.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;}

三、精彩专栏

看到这里了就 【点赞,关注,收藏】 三连 支持下吧,你的支持是我创作的动力。

HTML5七夕情人节表白网页制作【canvas生日快乐文字烟花背景动画特效】HTML+CSS+JavaScript 生日快乐代码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。