休息时间为0时番茄钟不停止
pomodoro clock doesnt stop when the break time is 0
经过几天的研究和与这个项目的斗争,我想寻求一些帮助。未执行的代码是最后一段代码,当 clearInterval 方法为 0 运行 时 breaktime 应该停止。
还有我不知道如何防止当你在红圈内点击时多次执行倒计时。
我是新手,所以代码很原始,但我正在尝试。
Codepen link: https://codepen.io/Seonatic/pen/zRPygV
function countdown(){
var session = document.getElementById("count").value;
var time = document.getElementById("input").value =+session*60;
var breakm = document.getElementById("break").value;
var breaktime =document.getElementById("input").value =+breakm*60;
var display = document.getElementById("input").value;
var sec = 1;
var myVar = setInterval(myTimer, 1000);
function myTimer(){
document.getElementById("input").value = time--;
if(time===0){
window.clearInterval(myVar);
var myVar2 = setInterval(increase, 1000);
function increase(){
document.getElementById("input").value = breaktime--;
if (breaktime===0) {
clearInterval(myVar2);
}
}
}
}
}
据我了解你的问题,这应该可以解决问题:
var val = 1;
function add() {
val++;
x = val;
if (val >= 1) {
document.getElementById("count").value = +x;
}
}
function minus() {
val--;
x = val;
if (val >= 1) {
document.getElementById("count").value = +x;
}
}
function add2() {
val++;
x = val;
if (val >= 1) {
document.getElementById("break").value = x;
}
}
function minus2() {
val--;
x = val;
if (val >= 1) {
document.getElementById("break").value = x;
}
}
var isCountdownRunning = false;
var myVar;
function countdown() {
var session = document.getElementById("count").value;
var time = (document.getElementById("input").value = +session * 60);
var breakm = document.getElementById("break").value;
var breaktime = (document.getElementById("input").value = +breakm * 60);
var display = document.getElementById("input").value;
var sec = 1;
if (isCountdownRunning === false) {
myVar = setInterval(myTimer, 1000);
isCountdownRunning = true;
}
function myTimer() {
document.getElementById("input").value = time--;
if (time === 0) {
clearInterval(myVar);
var myVar2 = setInterval(increase, 1000);
function increase() {
document.getElementById("input").value = breaktime--;
if (breaktime === 0) {
clearInterval(myVar2);
isCountdownRunning = false;
}
}
}
}
}
h1 {
font-family: 'Righteous', cursive;
font-size: 68px;
position: relative;
top: 2px;
font-weight: bold;
color: red;
text-align: center;
}
#circle {
top: 35px;
left: 37%;
background: #FF2600;
background: -moz-radial-gradient(center, #FF2600 0%, #BF1010 94%, #7A1B1B 100%);
background: -webkit-radial-gradient(center, #FF2600 0%, #BF1010 94%, #7A1B1B 100%);
background: radial-gradient(ellipse at center, #FF2600 0%, #BF1010 94%, #7A1B1B 100%);
position: relative;
display: block;
height: 400px;
width: 400px;
border-radius: 100%;
border: 1.2px solid black;
}
#icon {
position: relative;
top: 30px;
}
#contador {
position: relative;
top: -20px;
left: 38%;
background-color: white;
display: block;
height: 120px;
width: 350px;
border: 0.9px dotted white;
}
#pausa {
position: relative;
top: -59px;
float: left;
left: 50%;
background-color: white;
display: block;
height: 60px;
width: 175px;
border: 0.1px black;
}
#sesion {
font-family: 'Russo One', sans-serif;
font-size: 65px;
text-align: center;
}
#pausa {
position: relative;
top: -96px;
background-color: black font-family: 'Russo One', sans-serif;
font-size: 30px;
text-align: center;
}
#contador {
position: relative;
top: -20px;
font-family: 'Russo One', sans-serif;
font-size: 0px;
text-align: left;
color: black;
}
#tp {
position: relative;
top: 9px;
left: -136px;
width: 30px;
height: 30px;
border-radius: 70%;
border: 1px dotted black;
background-color: red;
color: white;
}
#tm {
position: relative;
top: 9px;
left: -54px;
width: 30px;
height: 30px;
background-color: red;
color: white;
border-radius: 70%;
border: 1px dotted black;
}
#bp {
position: relative;
top: 96px;
left: -31px;
width: 30px;
height: 30px;
border-radius: 80%;
border: 1px dotted black;
background-color: red;
color: white;
}
#bm {
position: relative;
top: 94px;
left: 42px;
width: 30px;
height: 30px;
background-color: red;
color: white;
border-radius: 70%;
border: 1px dotted black;
}
#ct {
font-size: 20px;
position: relative;
top: 10px;
left: 45px;
}
#bt {
position: relative;
font-size: 20px;
position: relative;
top: 3px;
left: 5px;
}
#count {
position: relative;
top: -190px;
left: 85px;
background-color: white;
color: black;
width: 70px;
height: 60px;
text-align: center;
font-family: 'Russo One', sans-serif;
font-size: 38px;
}
#break {
position: relative;
top: -19px;
left: 5px;
background-color: white;
color: black;
width: 70px;
height: 60px;
text-align: center;
font-family: 'Russo One', sans-serif;
font-size: 38px;
}
#input {
position: relative;
top: 150px;
left: -80px;
width: 200px;
height: 60px;
font-family: 'Russo One', sans-serif;
font-size: 28px;
text-align: center;
border-radius: 5%;
border-width: 2.2px;
border-color: red;
-webkit-box-shadow: inset 1px -1px 15px 1px rgba(0, 0, 0, 0.84);
box-shadow: inset 1px -1px 15px 1px rgba(0, 0, 0, 0.54);
}
#pause {
position: relative;
top: 150px;
left: 60px;
width: 120px;
height: 40px;
font-family: 'Russo One', sans-serif;
font-size: 28px;
text-align: center;
border-radius: 5%;
border-width: 4px;
border-color: red;
background-color: yellow;
-webkit-box-shadow: inset 1px -1px 15px 1px rgba(0, 0, 0, 0.84);
box-shadow: inset 1px -1px 15px 1px rgba(0, 0, 0, 0.54);
}
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Pomodoro</title>
</head>
<body>
<h1><img id="icon" src="https://png.icons8.com/windows/100/000000/tomato.png">Pomodoro Clock</h1>
<div id="contador">
<p id="ct">Session time:</p>
<button id="tp" value="1" onclick='add()'>+</button>
<button id="tm" value="1" onclick='minus()'>-</button>
<div id="pausa">
<button id="bp" value="1" onclick='add2()'>+</button>
<button id="bm" value="1" onclick='minus2()'>-</button>
<p id="bt">Break Time:</p>
<input type="text" size="25" value="5" id="break" min="1">
</div>
</div>
<div id="circle" onclick='countdown()'>
<input type="text" id="input" size="25" value="1" min="0">
<input type="text" size="25" value="1" id="count" min="1">
<input type="text" size="25" value="PAUSE" id="pause" min="1" onclick='break()'>
</div>
因为您忘记了实现一种检查倒计时是否已经 运行 的方法,间隔设置了一遍又一遍。
经过几天的研究和与这个项目的斗争,我想寻求一些帮助。未执行的代码是最后一段代码,当 clearInterval 方法为 0 运行 时 breaktime 应该停止。
还有我不知道如何防止当你在红圈内点击时多次执行倒计时。
我是新手,所以代码很原始,但我正在尝试。
Codepen link: https://codepen.io/Seonatic/pen/zRPygV
function countdown(){
var session = document.getElementById("count").value;
var time = document.getElementById("input").value =+session*60;
var breakm = document.getElementById("break").value;
var breaktime =document.getElementById("input").value =+breakm*60;
var display = document.getElementById("input").value;
var sec = 1;
var myVar = setInterval(myTimer, 1000);
function myTimer(){
document.getElementById("input").value = time--;
if(time===0){
window.clearInterval(myVar);
var myVar2 = setInterval(increase, 1000);
function increase(){
document.getElementById("input").value = breaktime--;
if (breaktime===0) {
clearInterval(myVar2);
}
}
}
}
}
据我了解你的问题,这应该可以解决问题:
var val = 1;
function add() {
val++;
x = val;
if (val >= 1) {
document.getElementById("count").value = +x;
}
}
function minus() {
val--;
x = val;
if (val >= 1) {
document.getElementById("count").value = +x;
}
}
function add2() {
val++;
x = val;
if (val >= 1) {
document.getElementById("break").value = x;
}
}
function minus2() {
val--;
x = val;
if (val >= 1) {
document.getElementById("break").value = x;
}
}
var isCountdownRunning = false;
var myVar;
function countdown() {
var session = document.getElementById("count").value;
var time = (document.getElementById("input").value = +session * 60);
var breakm = document.getElementById("break").value;
var breaktime = (document.getElementById("input").value = +breakm * 60);
var display = document.getElementById("input").value;
var sec = 1;
if (isCountdownRunning === false) {
myVar = setInterval(myTimer, 1000);
isCountdownRunning = true;
}
function myTimer() {
document.getElementById("input").value = time--;
if (time === 0) {
clearInterval(myVar);
var myVar2 = setInterval(increase, 1000);
function increase() {
document.getElementById("input").value = breaktime--;
if (breaktime === 0) {
clearInterval(myVar2);
isCountdownRunning = false;
}
}
}
}
}
h1 {
font-family: 'Righteous', cursive;
font-size: 68px;
position: relative;
top: 2px;
font-weight: bold;
color: red;
text-align: center;
}
#circle {
top: 35px;
left: 37%;
background: #FF2600;
background: -moz-radial-gradient(center, #FF2600 0%, #BF1010 94%, #7A1B1B 100%);
background: -webkit-radial-gradient(center, #FF2600 0%, #BF1010 94%, #7A1B1B 100%);
background: radial-gradient(ellipse at center, #FF2600 0%, #BF1010 94%, #7A1B1B 100%);
position: relative;
display: block;
height: 400px;
width: 400px;
border-radius: 100%;
border: 1.2px solid black;
}
#icon {
position: relative;
top: 30px;
}
#contador {
position: relative;
top: -20px;
left: 38%;
background-color: white;
display: block;
height: 120px;
width: 350px;
border: 0.9px dotted white;
}
#pausa {
position: relative;
top: -59px;
float: left;
left: 50%;
background-color: white;
display: block;
height: 60px;
width: 175px;
border: 0.1px black;
}
#sesion {
font-family: 'Russo One', sans-serif;
font-size: 65px;
text-align: center;
}
#pausa {
position: relative;
top: -96px;
background-color: black font-family: 'Russo One', sans-serif;
font-size: 30px;
text-align: center;
}
#contador {
position: relative;
top: -20px;
font-family: 'Russo One', sans-serif;
font-size: 0px;
text-align: left;
color: black;
}
#tp {
position: relative;
top: 9px;
left: -136px;
width: 30px;
height: 30px;
border-radius: 70%;
border: 1px dotted black;
background-color: red;
color: white;
}
#tm {
position: relative;
top: 9px;
left: -54px;
width: 30px;
height: 30px;
background-color: red;
color: white;
border-radius: 70%;
border: 1px dotted black;
}
#bp {
position: relative;
top: 96px;
left: -31px;
width: 30px;
height: 30px;
border-radius: 80%;
border: 1px dotted black;
background-color: red;
color: white;
}
#bm {
position: relative;
top: 94px;
left: 42px;
width: 30px;
height: 30px;
background-color: red;
color: white;
border-radius: 70%;
border: 1px dotted black;
}
#ct {
font-size: 20px;
position: relative;
top: 10px;
left: 45px;
}
#bt {
position: relative;
font-size: 20px;
position: relative;
top: 3px;
left: 5px;
}
#count {
position: relative;
top: -190px;
left: 85px;
background-color: white;
color: black;
width: 70px;
height: 60px;
text-align: center;
font-family: 'Russo One', sans-serif;
font-size: 38px;
}
#break {
position: relative;
top: -19px;
left: 5px;
background-color: white;
color: black;
width: 70px;
height: 60px;
text-align: center;
font-family: 'Russo One', sans-serif;
font-size: 38px;
}
#input {
position: relative;
top: 150px;
left: -80px;
width: 200px;
height: 60px;
font-family: 'Russo One', sans-serif;
font-size: 28px;
text-align: center;
border-radius: 5%;
border-width: 2.2px;
border-color: red;
-webkit-box-shadow: inset 1px -1px 15px 1px rgba(0, 0, 0, 0.84);
box-shadow: inset 1px -1px 15px 1px rgba(0, 0, 0, 0.54);
}
#pause {
position: relative;
top: 150px;
left: 60px;
width: 120px;
height: 40px;
font-family: 'Russo One', sans-serif;
font-size: 28px;
text-align: center;
border-radius: 5%;
border-width: 4px;
border-color: red;
background-color: yellow;
-webkit-box-shadow: inset 1px -1px 15px 1px rgba(0, 0, 0, 0.84);
box-shadow: inset 1px -1px 15px 1px rgba(0, 0, 0, 0.54);
}
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Pomodoro</title>
</head>
<body>
<h1><img id="icon" src="https://png.icons8.com/windows/100/000000/tomato.png">Pomodoro Clock</h1>
<div id="contador">
<p id="ct">Session time:</p>
<button id="tp" value="1" onclick='add()'>+</button>
<button id="tm" value="1" onclick='minus()'>-</button>
<div id="pausa">
<button id="bp" value="1" onclick='add2()'>+</button>
<button id="bm" value="1" onclick='minus2()'>-</button>
<p id="bt">Break Time:</p>
<input type="text" size="25" value="5" id="break" min="1">
</div>
</div>
<div id="circle" onclick='countdown()'>
<input type="text" id="input" size="25" value="1" min="0">
<input type="text" size="25" value="1" id="count" min="1">
<input type="text" size="25" value="PAUSE" id="pause" min="1" onclick='break()'>
</div>
因为您忘记了实现一种检查倒计时是否已经 运行 的方法,间隔设置了一遍又一遍。