<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>倒计时工具</title>
<style>
body {
font-family: 'Arial', sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
background-color: #f5f5f5;
color: #333;
}
.container {
background-color: white;
border-radius: 10px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
padding: 30px;
text-align: center;
width: 90%;
max-width: 500px;
}
h1 {
color: #2c3e50;
margin-bottom: 30px;
}
.input-group {
margin-bottom: 20px;
text-align: left;
}
label {
display: block;
margin-bottom: 8px;
font-weight: bold;
color: #555;
}
input {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
font-size: 16px;
box-sizing: border-box;
}
button {
background-color: #3498db;
color: white;
border: none;
padding: 12px 25px;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
transition: background-color 0.3s;
margin: 10px 5px;
}
button:hover {
background-color: #2980b9;
}
#stopBtn {
background-color: #e74c3c;
}
#stopBtn:hover {
background-color: #c0392b;
}
.countdown {
font-size: 3rem;
font-weight: bold;
margin: 20px 0;
color: #2c3e50;
}
.completed {
color: #e74c3c;
animation: pulse 1s infinite;
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
.footer {
margin-top: 30px;
font-size: 12px;
color: #7f8c8d;
}
a {
color: #3498db;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<div class="container">
<h1>倒计时工具</h1>
<div class="input-group">
<label for="hours">小时</label>
<input type="number" id="hours" min="0" value="0">
</div>
<div class="input-group">
<label for="minutes">分钟</label>
<input type="number" id="minutes" min="0" max="59" value="0">
</div>
<div class="input-group">
<label for="seconds">秒</label>
<input type="number" id="seconds" min="0" max="59" value="0">
</div>
<div>
<button id="startBtn">开始倒计时</button>
<button id="stopBtn">停止</button>
</div>
<div class="countdown" id="countdown">00:00:00</div>
</div>
<script>
let countdownInterval;
let totalSeconds = 0;
const hoursInput = document.getElementById('hours');
const minutesInput = document.getElementById('minutes');
const secondsInput = document.getElementById('seconds');
const countdownDisplay = document.getElementById('countdown');
const startBtn = document.getElementById('startBtn');
const stopBtn = document.getElementById('stopBtn');
startBtn.addEventListener('click', startCountdown);
stopBtn.addEventListener('click', stopCountdown);
function startCountdown() {
// 停止任何正在进行的倒计时
stopCountdown();
// 获取输入值
const hours = parseInt(hoursInput.value) || 0;
const minutes = parseInt(minutesInput.value) || 0;
const seconds = parseInt(secondsInput.value) || 0;
// 计算总秒数
totalSeconds = hours * 3600 + minutes * 60 + seconds;
if (totalSeconds <= 0) {
alert('请输入有效的时间!');
return;
}
// 更新显示
updateDisplay();
// 开始倒计时
countdownInterval = setInterval(() => {
totalSeconds--;
updateDisplay();
if (totalSeconds <= 0) {
stopCountdown();
countdownDisplay.classList.add('completed');
alert('倒计时结束!');
}
}, 1000);
}
function stopCountdown() {
clearInterval(countdownInterval);
countdownDisplay.classList.remove('completed');
}
function updateDisplay() {
const hours = Math.floor(totalSeconds / 3600);
const minutes = Math.floor((totalSeconds % 3600) / 60);
const seconds = totalSeconds % 60;
countdownDisplay.textContent =
`${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
}
</script>
</body>
</html>
倒计时工具
于 2025-05-21 17:39:39 首次发布
514

被折叠的 条评论
为什么被折叠?



