如何使用Javascript切换按钮



我想用HTML、CSS和JavaScript创建一个类似手机的秒表。我已经完成了这个任务,但是我不想要一个单独的按钮来停止和开始。我怎么能让一个按钮从开始到停止,从停止到开始?

这是我的HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="wrapper">
<h1>Stopwatch</h1>
<h2>Vanilla JavaScript Stopwatch</h2>
<p><span id="seconds">00</span>:<span id="tens">00</span></p>
<button id="button-start">Start</button>
<button id="button-stop">Stop</button>
<button id="button-reset">Reset</button>
</div>
</body>
</html>

下面是我的JavaScript代码:

window.onload = function () {

var seconds = 00; 
var tens = 00; 
var appendTens = document.getElementById("tens")
var appendSeconds = document.getElementById("seconds")
var buttonStart = document.getElementById('button-start');
var buttonStop = document.getElementById('button-stop');
var buttonReset = document.getElementById('button-reset');
var Interval ;
buttonStart.onclick = function() {

clearInterval(Interval);
Interval = setInterval(startTimer, 10);
}

buttonStop.onclick = function() {
clearInterval(Interval);
}

buttonReset.onclick = function() {
clearInterval(Interval);
tens = "00";
seconds = "00";
appendTens.innerHTML = tens;
appendSeconds.innerHTML = seconds;
}



function startTimer () {
tens++; 

if(tens <= 9){
appendTens.innerHTML = "0" + tens;
}

if (tens > 9){
appendTens.innerHTML = tens;

} 

if (tens > 99) {
console.log("seconds");
seconds++;
appendSeconds.innerHTML = "0" + seconds;
tens = 0;
appendTens.innerHTML = "0" + 0;
}

if (seconds > 9){
appendSeconds.innerHTML = seconds;
}

}

}

定义一个布尔值来跟踪时钟是否运行,并将start和stop函数合并为一个:如下所示:

var clockStarted = false;
buttonStart.onclick = function() {
clearInterval(Interval);
if (!clockStarted) {
Interval = setInterval(startTimer, 10);
clockStarted = true;
} else {
clockStarted = false;
}
}

buttonReset.onclick = function() {
clearInterval(Interval);
tens = "00";
seconds = "00";
appendTens.innerHTML = tens;
appendSeconds.innerHTML = seconds;
clockStarted = false;
}

你可以让播放按钮在点击后不可见(buttonStart.style)。display = "none")并启用停止按钮(buttonStop.style.)。display = "block"),并在停止功能中反向执行相同的操作。

另一种可能的方法是只使用一个按钮,并将玩家的状态保存在一个变量中(如boolen isPlaying)。然后你只需要一个onPress方法根据isPlaying来启动或停止播放器。您还需要根据该变量更改按钮上的元素或图标。

最新更新