800行代码实现春节倒计时与烟花祝福

简介: 春节就快要到了,在这里先祝愿大家,2022年,如虎添翼万事圆!吉祥如意平安年,开心快乐幸福年,喜气冲天幸运年,财源滚滚发财年,万事大吉顺心年,美满团圆喜庆年,愿君新年事事顺利,岁岁平安,年年如意!

一、前言


春节就快要到了,在这里先祝愿大家,2022年,如虎添翼万事圆!吉祥如意平安年,开心快乐幸福年,喜气冲天幸运年,财源滚滚发财年,万事大吉顺心年,美满团圆喜庆年,愿君新年事事顺利,岁岁平安,年年如意!


二、效果展示


1.春节计时

30.png

  • 春节计时的位置在中间偏上先设置一个大体的框架,代码获取到现在的时间显示,与过年设定好的时间进行比对,求解出具体还剩下的时分秒。


2.虎年摆件

31.png

  • 两个虎年动态摆件,左边是一只大吉大利的老虎,右边是一只心想事成的老虎,祝大家在新的一年里面,无论遇到任何事情都会大吉大利、心想事成。


3.背景音乐

32.png

  • 背景音乐是李谷一老师的难忘今宵(过年气氛就来了),点击右上角按钮即可以播放音乐


4.全局效果

33.png

  • 总体布局还是中间上方是一个灯笼,下面是距离春节的倒计时,最下面是两个小老虎,点击老虎中间的按钮就可以观看烟花。


5.烟花祝福

1.png

  • 点击底部的提前观看烟花就会跳转新的页面,生成烟花祝福
  • 等到春节的那一刻,也会跳转到这一个页面


三、代码讲解


html

<!DOCTYPE html><htmllang="zh"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"><metahttp-equiv="X-UA-Compatible' content='ie=edge,chrome=1"><linkrel="stylesheet"href="./css/index.css?ver=1.0"><linkrel="icon"href="./img/fz.png"><title>:知心宝贝祝你2022好运连连🎁</title></head><body><!-- 初始页 --><divclass="index"><divclass="lantern"></div><divclass="time">      距离春节:
<spanclass="hour">--</span> ://小时
<spanclass="min">--</span> ://分钟
<spanclass="second">--</span>//秒数
</div><divclass="text"></div><divclass="fence"><divclass="p1"></div><divclass="p2">提前看烟花</div>//点击按钮提前观看烟花
<divclass="p3"></div></div></div><!-- 烟花场景 --><divclass="fire">//进入烟花的场景
<canvas></canvas></div><!-- 烟花音效 --><divclass="fireSound">//设置不同的烟花音效
<audiosrc="http://www.imooc.com/newyear/static/fire_sound.mp3"autoplaymutedloop></audio><audiosrc="http://www.imooc.com/newyear/static/fire_sound.mp3"autoplaymutedloop></audio><audiosrc="http://www.imooc.com/newyear/static/fire_sound.mp3"autoplaymutedloop></audio></div><!-- 背景音乐 --><divclass="music run"><audiosrc="music/李谷一 - 难忘今宵.mp3"loop></audio>//李谷一老师的歌曲
</div><scriptsrc="./js/index.js?ver=1.0"></script></body></html>


JS倒计时

lettimer1=setInterval(() => {
letnowTime=newDate(),//获取目前的时间future=newDate("2022/02/01 00:00"),//设置好过春节的时间// 时间差times=future-nowTime,
// 时 分 秒h=Math.floor(times/ (3600*1000)),//计算相差的小时数m= (Math.floor(times% (3600*1000) / (60*1000)) +'').padStart(2, 0),//计算分钟数s= (Math.floor(times% (60*1000) /1000) +"").padStart(2, 0);//计算秒数hour.innerText=hmin.innerText=msecond.innerText=sif (s=="00"&&h=="00"&&m=="00") {//如果当前的时间和春节相等,触发烟花特效page1.style.display="none"page2.style.display="block"clearInterval(timer1)
// 初始烟花界面initFire()
    }
  }, 1000)


JS烟花

functioninitFire() {
// 爆炸声音for (leti=0; i<fireAudio.length; i++) {
fireAudio[i].currentTime=i    }
// 获取宽高letwidth=window.innerWidth,
height=window.innerHeight// 设置宽高canvas.width=widthcanvas.height=height// 运动小球letballs= [],
timer2=null,
count=0,
ballAll=5,
// 祝福词个数textAll=5,
// 祝福词坐标textPos= [
        { x: width/4, y: height/4+30 },
        { x: width/4*3, y: height/4-30 },
        { x: width/2, y: height/2 },
        { x: width/4, y: height/4*3 },
        { x: width/4*3, y: height/4*3+50 },
      ],
// 爆炸数组fires= [],
// 图片粒子点数组points1=getImgInfo(imgArr[0], 4),
points2= [],
textFires= []
for (leti=1; i<imgArr.length; i++) {
points2.push(getImgInfo(imgArr[i], 2))
    }


Css样式

.index.fence.p1 {//对于左边小老虎的特效
position: absolute;
left: 0px;//左侧位置
bottom: 0;
z-index: 5;
width: 280px;
height: 300px;
background: url(../img/kouzuo.png) bottomno-repeat;//设置图片在整个页面中的位置
background-size: 100%;
transform-origin: centerbottom;//底部
animation: 2sease-in-out-1sinfiniteturn;
}
.index.fence.p3 {//对于右边小老虎的特效
position: absolute;
right: -60px;//右侧位置
bottom: -70px;
z-index: 10;
width: 280px;
height: 300px;
background: url(../img/kouyou.png) no-repeat;//设置图片在整个页面中的位置
background-size: 100%;
transform-origin: centerbottom;//底部
animation: 2sease-in-outinfiniteturn;
}


四、Github Pages

35.png

Github Pages为每一个账户提供了专属域名,可以把自己提交到仓库的项目生成一个可执行站点,后面有机会我再详细介绍使用教程。

上面的春节代码只是简单列举了一些,大家如果想体验直接点击用Github Pages生成的链接:春节,或者自己依靠Github Pages上传这个项目文件,搞一个专属于自己的网页。

点击链接之后,就会跳转到上面效果图的界面,国内访问可能会有一点卡顿,等待一会就可以。


五、附录


这个代码是参考Github的牛年新春页面写的:牛年贺春

我给改成了虎年新春:虎年新春,大家想要源码直接上Github上面下载不同两个年份的贺春页面体验一下就可以了。

趁着钟声还未响,趁着鞭炮还未鸣,趁着春节还未至,趁着虎年刚开始,趁着人还未喝醉。先把我美好的祝愿送到你的手机,在这里祝愿大家虎年吉祥如意,合家欢乐。



相关文章
|
人工智能 算法
通义千问春节上新,除夕夜AI和你一起过大年!
通义千问春节上新,除夕夜AI和你一起过大年!
688 4
|
自然语言处理 Python
wordcloud:自定义背景图片,生成词云
wordcloud:自定义背景图片,生成词云
wordcloud:自定义背景图片,生成词云
|
JavaScript
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
825 0
|
JavaScript
新年倒计时动画网页特效源码
新年倒计时动画网页特效源码是一段基于JS实现的中国节日元旦2025年倒计时动画效果代码,利用此代码,可以实现任意节日的倒计时效果,欢迎对此代码感兴趣的朋友前来下载参考。
341 6
|
12月前
|
数据可视化 流计算 Python
Python创意爱心代码大全:从入门到高级的7种实现方式
本文分享了7种用Python实现爱心效果的方法,从简单的字符画到复杂的3D动画,涵盖多种技术和库。内容包括:基础字符爱心(一行代码实现)、Turtle动态绘图、Matplotlib数学函数绘图、3D旋转爱心、Pygame跳动动画、ASCII艺术终端显示以及Tkinter交互式GUI应用。每种方法各具特色,适合不同技术水平的读者学习和实践,是表达创意与心意的绝佳工具。
8957 0
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的高校食堂移动预约点餐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
MindIE对接vLLM框架开发指南
vLLM对接MindIE,使能快速迁移到昇腾设备上,当前MindIE 1.0.0发布版本已支持多种三方框架。
|
XML JavaScript Java
技术:Java-Web基础|XML解析(四)之JAXP-dom4j
XML是标记型文档,js 使用 dom 解析标记型文档是根据 html 的层级结构,在内存中分配一个属性结构,把 html 的标签,属性和文本都封装成 document 对象、element 对象,属性对象、文本对象,node 节点对象。「XML」解析技术xml的解析技术:dom 和 sax。
技术:Java-Web基础|XML解析(四)之JAXP-dom4j