【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子

简介: 【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子

【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子

开发背景

由于看到C站有个任务是上传新年主题相关的代码可以+6分,为了这6分必须拼一下子,要知道C站挣6分是有多么难的,优雅草央千澈是要冲刺全国排名的人那必须去争取一下,ok我们废话不多说开始实战吧,本次开发技术栈采用html5+div+CSS+JavaScript,用html给写一个新年放烟花并且领取一个随机新年礼物的小代码供大家送给自己心上人礼物-为了完成C站的新年主题任务-优雅草央千澈-做一条关于新年的代码分享给你们,章节共计5篇。

本文还有个事情声明下,优雅草央千澈还是改名为优雅草卓伊凡,本身自己的笔名是卓伊凡,但是酷爱霹雳侠影中的角色央千澈,因此之前一直以央千澈为名字,但是随着目前人气的升高,不免这样会影响到偶像这个名字重名,让很多道友不小心搜到我,这样不太好,因此后续所有的文章均改名为卓伊凡。

章节

【01】完成新年倒计时页面-蛇年新年快乐倒计时

效果实时演示地址

https://happynewyear.youyacao.com/

gitee开源地址

https://gitee.com/youyacao/happynewyear

实战开发

养成好习惯,先建库-clone-本地

构思:

本代码主要想实现2个内容就可以了,我想了下,实现第一个是新年除夕夜倒计时,倒计时完成后,跳出来新年快乐(对应蛇年新年快乐的图),再然后点击新年快乐,领取我的蛇年专属礼物,这个礼物可以有好几个图标,然后做几个选项,用一个特效效果来表示这个礼物的生产过程,最终在弹出您的新年礼物,大概就是这样的构思。

功能点:

1,除夕夜新年倒计时,(大家可以自行设置)
2,倒计时到点后放烟花。
3,提示领取新年礼物。
4,一个随机的新年礼物伴随着动画出来。
5,为了防止作弊需要做个反作弊机制。

实战开发

进入vscode 建立第一个index.html

做一个倒计时先:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2025年蛇年-新年倒计时-优雅草央千澈</title>
    <style>
        #countdown {
            font-size: 24px;
            font-weight: bold;
            text-align: center;
            margin-top: 50px;
        }
    </style>
</head>
<body>
    <div id="countdown"></div>
    <script>
        // 设置目标日期为1月28日
        const targetDate = new Date(new Date().getFullYear(), 0, 28).getTime();
        // 更新倒计时的函数
        function updateCountdown() {
            const now = new Date().getTime();
            const distance = targetDate - now;
            // 计算天、小时、分钟和秒
            const days = Math.floor(distance / (1000 * 60 * 60 * 24));
            const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
            const seconds = Math.floor((distance % (1000 * 60)) / 1000);
            // 显示倒计时
            document.getElementById("countdown").innerHTML = 
                days + "天 " + hours + "小时 " + minutes + "分钟 " + seconds + "秒 ";
            // 如果倒计时结束,显示提示信息
            if (distance < 0) {
                clearInterval(countdownInterval);
                document.getElementById("countdown").innerHTML = "新年快乐!";
            }
        }
        // 每秒更新一次倒计时
        const countdownInterval = setInterval(updateCountdown, 1000);
    </script>
</body>
</html>

我们完成了新年倒计时,有点空白,优雅草央千澈决定加个背景图,AI生成一张图,

选择4:3的尺寸,暂时用可灵AI来生成一下图,

妈呀这不是太诡异了吗,重新组织了下措辞,然后再次生成,

满意,取这第四张,现在我们将这张图做成背景,养成习惯建立资源文件夹 assets\img\ ,加入背景

书写代码:

body {
            background-image: url('assets/img/bg.png');
            background-size: cover; /* 使背景图片覆盖整个页面 */
            background-position: center; /* 将背景图片居中 */
            background-repeat: no-repeat; /* 防止背景图片重复 */
            margin: 0; /* 去除默认的body边距 */
            height: 100vh; /* 使body高度占满整个视口 */
        }

不过我发现倒计时看不见了,

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2025年蛇年-新年倒计时-优雅草央千澈</title>
    <style>
        body {
            background-image: url('assets/img/bg.png');
            background-size: cover; /* 使背景图片覆盖整个页面 */
            background-position: center; /* 将背景图片居中 */
            background-repeat: no-repeat; /* 防止背景图片重复 */
            margin: 0; /* 去除默认的body边距 */
            height: 100vh; /* 使body高度占满整个视口 */
            display: flex; /* 使用flex布局 */
            justify-content: center; /* 水平居中 */
            align-items: center; /* 垂直居中 */
            font-family: 'Arial', sans-serif; /* 设置字体 */
        }
        #countdown {
            font-size: 48px; /* 增大字体 */
            font-weight: bold;
            text-align: center;
            color: #ffcc00; /* 选择一个显眼的颜色,类似时钟 */
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); /* 添加阴影效果 */
            background-color: rgba(0, 0, 0, 0.5); /* 添加背景颜色,使文字更突出 */
            padding: 20px; /* 添加内边距 */
            border-radius: 10px; /* 添加圆角 */
        }
    </style>
</head>
<body>
    <div id="countdown"></div>
    <script>
        // 设置目标日期为1月28日
        const targetDate = new Date(new Date().getFullYear(), 0, 28).getTime();
        // 更新倒计时的函数
        function updateCountdown() {
            const now = new Date().getTime();
            const distance = targetDate - now;
            // 计算天、小时、分钟和秒
            const days = Math.floor(distance / (1000 * 60 * 60 * 24));
            const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
            const seconds = Math.floor((distance % (1000 * 60)) / 1000);
            // 显示倒计时
            document.getElementById("countdown").innerHTML = 
                days + "天 " + hours + "小时 " + minutes + "分钟 " + seconds + "秒 ";
            // 如果倒计时结束,显示提示信息
            if (distance < 0) {
                clearInterval(countdownInterval);
                document.getElementById("countdown").innerHTML = "新年快乐!";
            }
        }
        // 每秒更新一次倒计时
        const countdownInterval = setInterval(updateCountdown, 1000);
    </script>
</body>
</html>

这样看起来差不多了,文字我再修改下为2025年蛇年除夕夜倒计时这个主题文字加倒计时头部。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2025年蛇年-新年倒计时-优雅草央千澈</title>
    <style>
        body {
            background-image: url('assets/img/bg.png');
            background-size: cover; /* 使背景图片覆盖整个页面 */
            background-position: center; /* 将背景图片居中 */
            background-repeat: no-repeat; /* 防止背景图片重复 */
            margin: 0; /* 去除默认的body边距 */
            height: 100vh; /* 使body高度占满整个视口 */
            display: flex; /* 使用flex布局 */
            justify-content: center; /* 水平居中 */
            align-items: center; /* 垂直居中 */
            font-family: 'Arial', sans-serif; /* 设置字体 */
        }
        #countdown-container {
            text-align: center;
        }
        #countdown-title {
            font-size: 32px; /* 设置标题字体大小 */
            font-weight: bold;
            color: #ffcc00; /* 选择一个显眼的颜色,类似时钟 */
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); /* 添加阴影效果 */
            margin-bottom: 20px; /* 添加底部外边距 */
        }
        #countdown {
            font-size: 48px; /* 增大字体 */
            font-weight: bold;
            text-align: center;
            color: #ffcc00; /* 选择一个显眼的颜色,类似时钟 */
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); /* 添加阴影效果 */
            background-color: rgba(0, 0, 0, 0.5); /* 添加背景颜色,使文字更突出 */
            padding: 20px; /* 添加内边距 */
            border-radius: 10px; /* 添加圆角 */
        }
    </style>
</head>
<body>
    <div id="countdown-container">
        <div id="countdown-title">2025年蛇年除夕夜倒计时</div>
        <div id="countdown"></div>
    </div>
    <script>
        // 设置目标日期为1月28日
        const targetDate = new Date(new Date().getFullYear(), 0, 28).getTime();
        // 更新倒计时的函数
        function updateCountdown() {
            const now = new Date().getTime();
            const distance = targetDate - now;
            // 计算天、小时、分钟和秒
            const days = Math.floor(distance / (1000 * 60 * 60 * 24));
            const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
            const seconds = Math.floor((distance % (1000 * 60)) / 1000);
            // 显示倒计时
            document.getElementById("countdown").innerHTML = 
                days + "天 " + hours + "小时 " + minutes + "分钟 " + seconds + "秒 ";
            // 如果倒计时结束,显示提示信息
            if (distance < 0) {
                clearInterval(countdownInterval);
                document.getElementById("countdown").innerHTML = "新年快乐!";
            }
        }
        // 每秒更新一次倒计时
        const countdownInterval = setInterval(updateCountdown, 1000);
    </script>
</body>
</html>

稍微有点单调,我们在左下角和右下角加入小烟花吧,小烟花动态效果,这样看上去是活的。

然后我们再加入一个欢快的新年气氛音乐,至于音乐吗,因为避免版权问题,那就刚好了,卓伊凡是一位音乐人,避免版权问题,直接做一首(一位强大的程序员再加上AI魔法加上自己的乐感对音乐的理解,创作一首普普通通的新年歌还不是信手拈来),

新建sounds文件夹,加入happy new year.mp3 文件,再加入播放器代码,并且自动播放音乐。

@keyframes explode {
            0% {
                transform: scale(1);
                opacity: 1;
            }
            50% {
                transform: scale(2);
                opacity: 0.5;
            }
            100% {
                transform: scale(3);
                opacity: 0;
            }
        }
        #audio-player {
            position: absolute;
            bottom: 20px;
            left: 50%;
            transform: translateX(-50%);
            background-color: rgba(0, 0, 0, 0.5); /* 半透明背景 */
            padding: 10px;
            border-radius: 10px;
            z-index: 2; /* 确保音乐播放器在烟花之上 */
        }
        #audio-player audio {
            width: 100%;
        }
          <div id="audio-player">
        <audio id="background-music" autoplay loop>
            <source src="assets/sounds/happy new year.mp3" type="audio/mpeg">
            您的浏览器不支持 audio 元素。
        </audio>
    </div>

半透明的播放器代码,html中使用 audio元素即可,非常简单,查看效果,非常棒!

发现音乐没有自动播放

自动播放音频在现代浏览器中受到严格的限制,以提升用户体验并减少不必要的干扰。通常,浏览器会阻止自动播放带有声音的音频,除非用户与页面进行了交互(例如点击页面)。为了确保音乐能够自动播放,可以采取以下几种方法:

  1. 静音自动播放:将音频设置为静音状态,这样可以绕过浏览器的自动播放限制。
  2. 用户交互触发:在用户与页面进行交互(如点击按钮)后播放音频。
  3. 使用 muted 属性:在 <audio> 标签中添加 muted 属性,允许音频静音自动播放。

因此改造下:
发现加了muted 还是不得行,报错
播放音乐时出错: NotAllowedError: play() failed because the user didn’t interact with the document first. {code: 0, name: ‘NotAllowedError’, message: “play() failed because the user didn’t interact with the document first.”}

既然如此我们就加上播放按钮吧,于是我们继续改造

我们把播放器放在新年倒计时的下方,并且播放器的高度限制为120px,给播放器一个宽度数值,播放器的宽度不能超过倒计时文字的宽度,并且为播放器增加播放按钮,增加上一首下一首按钮,

满意 ,并且可以播放音乐,本篇完成,喜欢就请关注点赞+收藏,优雅草卓伊凡-只肝干货

目录
相关文章
|
20天前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
48 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
19天前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
61 34
|
21天前
|
前端开发
“弘五四,耀青春”程序创意获奖作品【html+css】
本作品以“青春筑梦,共创未来”为主题,采用动态龙元素展现青春活力与创新精神。页面设计简洁明快,色彩协调,突显年轻人积极向上的风貌。作品内容包括获奖截图、名字《时代扬新帆》及源代码分享。特别说明:禁止用于商业活动,可用于比赛和作业等开源场景。最后,作者表达了对五四精神的致敬与传承,强调了青春活力和创造力的重要性,并感谢评委和支持者。 **获奖感言摘录:** “获得这个奖项,对我们团队来说,既是认可也是激励。我们将继续努力,不断优化产品,为用户带来更好的体验,为社会贡献更多价值。”
31 2
|
前端开发
页面打印 css
CSS打印分页 page-break-before : auto | always | avoid | left | right | null   参数:  auto :  假如需要在对象之前插入页分割符always :  始终在对象之前插入页分割符avoid :  避免在对象前面插入页分割符left :  在对象前面插入页分割符直到它到达一个空白的左页边right :  在对象前面插入页分割符直到它到达一个空白的右页边null :  空值。
661 0
|
23天前
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
70 33
|
2月前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
115 24
|
6月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
|
4月前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML和CSS之旅
【9月更文挑战第32天】在这个数字化的时代,拥有一个个人博客不仅是展示自我的平台,也是技术交流的桥梁。本文将引导初学者理解并实现一个简单的个人博客网站的搭建,涵盖HTML的基础结构、CSS样式的美化技巧以及如何将两者结合来制作一个完整的网页。通过这篇文章,你将学会如何从零开始构建自己的网络空间,并在互联网世界留下你的足迹。
|
3月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
108 7