

专为2025年中考考生设计的沉浸式时间管理工具,通过视觉化倒计时、动态交互效果与励志文案结合,帮助考生清晰感知备考时间,营造积极的冲刺氛围。

// script.js第2行,可自定义中考日期(注意月份从0开始,6月需写5)
var targetDate = new Date(2025, 5, 21, 0, 0, 0);
// 毫秒级差值分解为天/时/分/秒
var days = Math.floor(difference / (1000*60*60*24));
var hours = Math.floor((difference % 86400000) / 3600000);
// 采用模运算避免精度丢失,确保跨时区计算准确
difference <= 0时,自动切换为「中考已开始!」提示,触发文字颜色从渐变到纯红的CSS过渡。/* style.css第62行 */
.countdown {
background: linear-gradient(135deg, #4361ee, #f72585); /* 蓝紫渐变主色 */
-webkit-background-clip: text; /* 文本剪裁背景 */
color: transparent; /* 透明文字显示渐变 */
}
transform: scale(1) → scale(1.05),配合文字阴影扩散(text-shadow: 4px → 6px),模拟呼吸感。// 每秒调用一次,padStart补零确保两位数显示
const hours = now.getHours().toString().padStart(2, '0');
background: rgba(255,255,255,0.3)),带内阴影与毛玻璃模糊blink动画,50%透明度时缩小0.9倍,模拟心跳节奏鼠标悬停时触发「微抬升+阴影增强」动画:
.main-container:hover .time-display span:not(.colon) {
transform: translateY(-4px); /* 上移4px */
box-shadow: 0 8px 20px rgba(0,0,0,0.12); /* 阴影扩散 */
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* 弹性过渡 */
}
技术实现
new操作),通过Object.assign重置属性canvas而非DOM元素,避免重排重绘;通过requestAnimationFrame节流(30fps)ctx.fillStyle = rgba(240,244,255,0.2)),模拟粒子运动轨迹粒子参数配置
// script.js粒子属性
{
x: 随机水平位置,
y: -size(顶部外开始),
size: 2-5px,
color: 4种预设渐变色,
speed: 1-3px/帧(下落速度)
}
运动轨迹
从随机水平位置(10%-90%窗口宽度)开始,沿transform: translateX(500px) translateY(300px)斜下方移动,3秒后自动销毁
视觉细节
background: white)box-shadow: 0 0 10px 2px white,模拟流星尾光扩散/* style.css第20行 */
box-shadow:
0 8px 32px rgba(31,38,135,0.15), /* 外阴影 */
0 0 0 1px rgba(255,255,255,0.1) inset, /* 内边框 */
0 0 40px rgba(255,255,255,0.2) inset; /* 内发光 */
| 技术栈 | 作用 | 优势 |
|---|---|---|
| HTML5 | 页面结构 | 语义化标签,SEO友好 |
| CSS3 | 样式与动画 | 变量系统、硬件加速动画 |
| JavaScript | 交互逻辑 | 原生API实现,无第三方依赖 |
| Canvas | 粒子动画渲染 | 高性能图形绘制 |
| Google Fonts | 中文字体 | 思源黑体,跨平台显示一致性 |
├── index.html # 入口文件(包含HTML结构与资源引用) ├── css/ │ └── style.css # 样式文件(玻璃拟态、动画、响应式) └── js/ └── script.js # 逻辑文件(倒计时、粒子、流星、性能优化)
transform和opacity属性做动画(避免触发重排)frameInterval = 1000/30)setTimeout),避免高频画布重绘Object.assign重置属性而非新建对象remove(),避免内存泄漏script.js第2行targetDate(月份0-11,日期1-31)setInterval间隔(建议≥500ms)style.css的:root中修改--primary-color(主色)、--accent-color(强调色)script.js中的colors数组(粒子颜色,支持RGBA格式)@keyframes中的时间参数(如float动画周期从12s改为15s)index.html中id="tip"的文本内容(支持HTML标签,如<em>...</em>)<h1>和提示语文本| 浏览器 | 支持情况 | 备注 |
|---|---|---|
| Chrome | 完全支持 | 推荐版本≥80 |
| Firefox | 完全支持 | 需开启GPU加速 |
| Safari | 支持(部分动画稍慢) | iOS≥13+ |
| Edge (Chromium) | 完全支持 | 同Chrome兼容性 |
| 安卓浏览器 | 基本支持 | 低端设备建议关闭粒子动画 |
index.html在浏览器中打开(需联网加载字体)canvas动画、对象池、节流防抖的实际应用backdrop-filter、多层阴影、半透明渐变的组合使用