这段代码是一个完整的网页,核心功能是实时显示距离 2026 年春节大年初一(2 月 17 日 0 点)的倒计时,包含天、时、分、秒四个维度,并且页面有渐变背景、半透明卡片等美化样式,适配移动端显示。

HTML 结构部分(页面骨架)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- 字符编码,确保中文等字符正常显示 --> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- 适配移动端,让页面宽度等于设备宽度,初始缩放1倍 --> <title>2026春节大年初一倒计时</title> <!-- 网页标题 --> <!-- style标签:页面样式设置 --> <style>/* 样式内容 */</style> </head> <body> <!-- 核心容器:包裹所有内容,做半透明背景和圆角 --> <div> <h1>2026春节大年初一倒计时</h1> <!-- 标题 --> <!-- 倒计时区域:包含天/时/分/秒四个时间盒子 --> <div id="countdown"> <div><span>天</span><b id="days"></b></div> <div><span>时</span><b id="hours"></b></div> <div><span>分</span><b id="minutes"></b></div> <div><span>秒</span><b id="seconds"></b></div> </div> </div> <!-- script标签:倒计时核心逻辑 --> <script>/* JS逻辑内容 */</script> </body> </html>
container类:作为外层容器,实现居中、半透明背景、圆角美化;
time-box类:每个时间维度(天 / 时 / 分 / 秒)的独立盒子,让样式更规整;
id="days/hours/minutes/seconds":用于 JS 获取元素,动态填充倒计时数值。
CSS 样式部分(页面美化)
body {
font-family: 'Arial', sans-serif; /* 字体:优先Arial,无则用系统无衬线字体 */
background: linear-gradient(to right, #ff7e5f, #feb47b); /* 背景渐变:从橙红到浅橙 */
color: white; /* 文字颜色白色 */
text-align: center; /* 内容居中 */
padding: 50px; /* 页面内边距,避免内容贴边 */
}
h1 {
font-size: 3em; /* 标题字体大小(em是相对单位,1em=当前字体大小) */
margin-bottom: 20px; /* 标题下方外边距 */
}
#countdown {
font-size: 2em;
margin-bottom: 20px;
}
.container {
display: inline-block; /* 让容器宽度适配内容,而非占满整行 */
padding: 20px;
border-radius: 10px; /* 圆角 */
background: rgba(0, 0, 0, 0.5); /* 黑色半透明背景(0.5是透明度) */
}
.time-box {
display: inline-block; /* 让时间盒子横向排列 */
margin: 0 10px; /* 盒子之间的左右间距 */
padding: 10px;
background: rgba(255, 255, 255, 0.2); /* 白色半透明背景 */
border-radius: 5px;
}
.time-box span {
display: block; /* 让“天/时/分/秒”文字独占一行 */
font-size: 1.5em;
}
.time-box b {
font-size: 2em; /* 倒计时数字放大显示 */
}linear-gradient:实现渐变色背景,提升视觉效果;
rgba:设置半透明背景,既美观又不遮挡底层渐变;
display: inline-block:让时间盒子横向排列,适配不同屏幕宽度。
JavaScript 逻辑部分(倒计时核心)
function updateCountdown() {
// 1. 定义目标时间:2026年2月17日0点,转换为时间戳(毫秒)
const targetDate = new Date('February 17, 2026 00:00:00').getTime();
// 2. 获取当前时间戳
const now = new Date().getTime();
// 3. 计算目标时间与当前时间的差值(毫秒)
const timeDifference = targetDate - now;
// 4. 时间戳转换为天/时/分/秒
const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); // 总毫秒数 ÷ 一天的毫秒数(1000*60*60*24)
const hours = Math.floor((timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); // 剩余毫秒数 ÷ 一小时的毫秒数
const minutes = Math.floor((timeDifference % (1000 * 60 * 60)) / (1000 * 60)); // 剩余毫秒数 ÷ 一分钟的毫秒数
const seconds = Math.floor((timeDifference % (1000 * 60)) / 1000); // 剩余毫秒数 ÷ 一秒的毫秒数
// 5. 将计算结果填充到页面对应位置
document.getElementById('days').innerText = days;
document.getElementById('hours').innerText = hours;
document.getElementById('minutes').innerText = minutes;
document.getElementById('seconds').innerText = seconds;
}
// 6. 定时执行:每1000毫秒(1秒)更新一次倒计时
setInterval(updateCountdown, 1000);
// 7. 页面加载时立即执行一次,避免初始空白
updateCountdown();getTime():将日期转换为时间戳(从 1970 年 1 月 1 日 0 点到该时间的毫秒数),方便计算时间差;
Math.floor():向下取整(比如 1.9 天取 1 天,避免出现小数);
%(取余运算符):用于计算 “剩余的毫秒数”,比如总差值减去整天数后,剩余的毫秒数再计算小时;
setInterval:定时任务,保证倒计时每秒更新一次;
先执行updateCountdown():页面加载时直接显示倒计时,而非等 1 秒后才显示。
总结
这段代码分为HTML 结构(搭建页面骨架)、CSS 样式(美化页面)、JS 逻辑(实现倒计时核心)三部分,分工清晰;
JS 核心是通过时间戳计算时间差,再将毫秒差转换为天 / 时 / 分 / 秒,通过setInterval每秒更新页面;
样式上用了渐变背景、半透明容器、弹性布局,兼顾美观和移动端适配。
完整代码
隐藏资源
留言评论后查看此资源点击查看



发表评论