css 语言 CSS 制作带进度的倒计时器示例

CSS阿木 发布于 2025-06-18 3 次阅读


CSS 制作带进度的倒计时器示例

倒计时器在网页设计中是一种常见的交互元素,它可以帮助用户了解剩余时间,比如活动开始前的时间、限时优惠的剩余时间等。使用 CSS 和 JavaScript 可以轻松实现一个带进度的倒计时器。本文将围绕这一主题,通过一个示例来展示如何使用 CSS 和 JavaScript 制作一个带进度的倒计时器。

前言

在开始编写代码之前,我们需要明确以下几点:

1. 目标:制作一个带进度的倒计时器,显示剩余时间,并在倒计时结束时执行特定操作。

2. 技术栈:CSS 用于样式设计,JavaScript 用于逻辑控制。

3. 功能:倒计时器应显示小时、分钟、秒,并实时更新。

准备工作

在开始编写代码之前,我们需要准备以下内容:

1. HTML 结构:定义倒计时器的基本结构。

2. CSS 样式:设计倒计时器的样式。

3. JavaScript 逻辑:编写倒计时器的逻辑代码。

HTML 结构

我们需要创建一个简单的 HTML 结构来展示倒计时器。以下是一个基本的 HTML 结构示例:

html

<!DOCTYPE html>


<html lang="en">


<head>


<meta charset="UTF-8">


<meta name="viewport" content="width=device-width, initial-scale=1.0">


<title>带进度的倒计时器</title>


<link rel="stylesheet" href="styles.css">


</head>


<body>


<div class="countdown-container">


<div class="countdown-timer">


<span class="countdown-item hours">00</span>


<span class="countdown-item minutes">00</span>


<span class="countdown-item seconds">00</span>


</div>


</div>


<script src="script.js"></script>


</body>


</html>


CSS 样式

接下来,我们为倒计时器添加一些基本的 CSS 样式。以下是一个简单的 CSS 样式示例:

css

/ styles.css /


.countdown-container {


text-align: center;


margin-top: 50px;


}

.countdown-timer {


font-family: 'Arial', sans-serif;


font-size: 24px;


color: 333;


}

.countdown-item {


display: inline-block;


width: 30px;


height: 30px;


line-height: 30px;


border: 1px solid 333;


border-radius: 50%;


margin: 0 5px;


background-color: fff;


text-align: center;


font-weight: bold;


}

/ 进度条样式 /


.progress-container {


width: 300px;


height: 20px;


background-color: eee;


border-radius: 10px;


margin-top: 10px;


}

.progress-bar {


height: 100%;


width: 0%;


background-color: 4CAF50;


border-radius: 10px;


transition: width 0.4s ease-in-out;


}


JavaScript 逻辑

我们需要编写 JavaScript 代码来实现倒计时器的逻辑。以下是一个简单的 JavaScript 代码示例:

javascript

// script.js


document.addEventListener('DOMContentLoaded', function() {


const countdownTimer = document.querySelector('.countdown-timer');


const hoursItem = countdownTimer.querySelector('.hours');


const minutesItem = countdownTimer.querySelector('.minutes');


const secondsItem = countdownTimer.querySelector('.seconds');


const progressBar = document.querySelector('.progress-bar');

// 设置倒计时结束时间


const endTime = new Date('Dec 31, 2023 23:59:59').getTime();

// 更新倒计时


const updateCountdown = () => {


const now = new Date().getTime();


const timeLeft = endTime - now;

// 计算小时、分钟、秒


const hours = Math.floor((timeLeft % (1000 60 60 24)) / (1000 60 60));


const minutes = Math.floor((timeLeft % (1000 60 60)) / (1000 60));


const seconds = Math.floor((timeLeft % (1000 60)) / 1000);

// 更新倒计时器显示


hoursItem.textContent = hours < 10 ? '0' + hours : hours;


minutesItem.textContent = minutes < 10 ? '0' + minutes : minutes;


secondsItem.textContent = seconds < 10 ? '0' + seconds : seconds;

// 更新进度条


const progress = (timeLeft / (endTime - new Date('Jan 1, 1970')) 100).toFixed(2);


progressBar.style.width = progress + '%';

// 如果倒计时结束,执行特定操作


if (timeLeft < 0) {


clearInterval(interval);


hoursItem.textContent = '00';


minutesItem.textContent = '00';


secondsItem.textContent = '00';


progressBar.style.width = '0%';


alert('倒计时结束!');


}


};

// 每秒更新倒计时


const interval = setInterval(updateCountdown, 1000);

// 初始化倒计时


updateCountdown();


});


总结

通过以上步骤,我们成功实现了一个带进度的倒计时器。这个倒计时器会显示小时、分钟、秒,并在倒计时结束时显示一个进度条。在实际应用中,你可以根据需要调整样式和逻辑,以适应不同的场景和需求。

本文提供了一个基本的倒计时器实现,你可以在此基础上进行扩展,比如添加动画效果、响应式设计、集成到现有的项目中等。希望这篇文章能帮助你更好地理解如何使用 CSS 和 JavaScript 制作带进度的倒计时器。