使用javascript文件,编写一个脚本,当您单击“开始”按钮时运行。如果倒计时已经开始,“开始”按钮不应响应按下; 按下“暂停”按钮,倒计时应停止; 通过按“停止”按钮,倒计时应停止,字段值应重置为0。倒计时分钟和秒应每秒显示在页面上的相应输入字段中(带有标识符和min,sec); 当时间变为 0 分 0 秒时,倒计时应停止;并且时间倒计时到 0 分 0 秒时,显示用户设置的提醒文本,并将页面的背景色更改为用户指定的颜色。 有必要实现重新启动倒计时的功能(在这种情况下,您需要重置页面的背景颜色);
时间: 2024-02-18 18:04:36 浏览: 140
以下是使用外部 Javascript 文件实现您描述的功能的代码:
在 HTML 文件中添加以下内容:
```html
<!DOCTYPE html>
<html>
<head>
<title>倒计时</title>
<script type="text/javascript" src="countdown.js"></script> <!-- 引入外部 Javascript 文件 -->
</head>
<body>
<label for="minutes">分钟数:</label>
<input type="text" id="minutes" value="0min"><br>
<label for="seconds">秒数:</label>
<input type="text" id="seconds" value="0sec"><br>
<label for="bgColor">背景颜色:</label>
<input type="text" id="bgColor"><br>
<label for="alertMsg">提醒文本:</label>
<input type="text" id="alertMsg"><br>
<button onclick="startCountDown()">开始</button>
<button onclick="pauseCountDown()">暂停</button>
<button onclick="stopCountDown()">停止</button>
<button onclick="restartCountDown()">重新启动</button>
</body>
</html>
```
在名为 `countdown.js` 的外部 Javascript 文件中添加以下内容:
```js
var countDown; // 定时器变量
var timeLeft = 0; // 剩余时间
var bgColor = ""; // 背景色
var alertMsg = ""; // 提醒文本
// 开始倒计时
function startCountDown() {
if (countDown) {
return; // 如果已经启动倒计时,则不响应按下
}
// 读取用户输入的时间和背景色、提醒文本
var minutes = parseInt(document.getElementById("minutes").value);
var seconds = parseInt(document.getElementById("seconds").value);
bgColor = document.getElementById("bgColor").value;
alertMsg = document.getElementById("alertMsg").value;
if (isNaN(minutes) || isNaN(seconds)) {
alert("请输入正确的时间");
return;
}
timeLeft = minutes * 60 + seconds; // 计算剩余时间
countDown = setInterval(updateTimeLeft, 1000); // 定时器每秒更新剩余时间
}
// 更新剩余时间
function updateTimeLeft() {
var minutes = Math.floor(timeLeft / 60);
var seconds = timeLeft % 60;
document.getElementById("minutes").value = minutes + "min";
document.getElementById("seconds").value = seconds + "sec";
timeLeft--;
if (timeLeft < 0) {
stopCountDown();
alert(alertMsg);
document.body.style.backgroundColor = bgColor; // 更改背景色
}
}
// 暂停倒计时
function pauseCountDown() {
clearInterval(countDown);
countDown = null;
}
// 停止倒计时
function stopCountDown() {
clearInterval(countDown);
countDown = null;
timeLeft = 0;
document.getElementById("minutes").value = "0min";
document.getElementById("seconds").value = "0sec";
document.body.style.backgroundColor = ""; // 重置背景色
}
// 重新启动倒计时
function restartCountDown() {
stopCountDown();
startCountDown();
}
```
在上面的代码中,我们将之前在 HTML 文件中的 Javascript 代码移动到了名为 `countdown.js` 的外部 Javascript 文件中。在 HTML 文件中,我们通过 `script` 标签引入了这个外部 Javascript 文件。
其他部分的实现与之前的方法相同,使用定时器变量 `countDown` 来控制倒计时的启动、暂停和停止,使用 `setInterval()` 来每秒更新剩余时间。在 `startCountDown()` 函数中,我们首先判断定时器变量是否已经存在。如果已经存在,则不响应按下。如果不存在,则读取用户输入的时间、背景色和提醒文本,并计算出剩余时间。如果用户没有输入正确的时间,则弹出提示。
在 `updateTimeLeft()` 函数中,我们每秒更新剩余时间,并判断是否已经计时结束。如果计时结束,则停止倒计时、弹出提醒文本,并将页面的背景色更改为用户指定的颜色。
在 `pauseCountDown()` 函数中,我们停止定时器,暂停倒计时。
在 `stopCountDown()` 函数中,我们停止定时器、重置剩余时间和页面的背景色,停止倒计时。
在 `restartCountDown()` 函数中,我们调用 `stopCountDown()` 函数停止倒计时,并调用 `startCountDown()` 函数重新启动倒计时。
阅读全文