请帮我处理我的代码。我的问题是当计时器完成时,它显示-1:60而不是显示0:00。我尝试了不同的其他方式,但是徒劳无功。当我将if语句中的条件更改为x> 0时,计时器不会从0:60下降。任何帮助将不胜感激。我尝试了不同的其他,如果是其他声明,没有任何帮助 先感谢您。
<h1 id='session' onClick='general()'>2</h1>
JS:
var seconds=60;
var x=document.getElementById('session').innerHTML-1;
var t;
function timer(){
if(x>=0){
seconds--;
if(seconds<10){
seconds='0'+seconds;
};
if(seconds==0){
x--;
seconds=60;
}
}
document.getElementById('session').innerHTML=x+':'+seconds;
}
function stoptimer(){
clearInterval(t);
}
var on=true;
function general(){
if(on){
on=false;
t = setInterval(timer,200);
}else{
on=true;
stoptimer();
}
}
答案 0 :(得分:0)
我为你创造了一个小提琴,它将计时器从60秒倒计时到00.
小提琴:https://jsfiddle.net/njw73naj/
<强> HTML 强>
<h1>
<span id="min">0</span>
:
<span id="sec">00</span>
</h1>
<强> JS 强>
var seconds = 60,
secondDom = document.getElementById("sec");
secondDom.innerHTML = seconds;
var countdown = function(){
seconds--;
if(seconds < 0){
clearInterval(timer);
}else{
secondDom.innerHTML = (seconds < 10 ? "0" + seconds : seconds);
}
}
var timer = setInterval(countdown,1000);
希望这会有所帮助。 :)
答案 1 :(得分:0)
我已从您的代码中删除了某些不必要的内容。虽然, 你应该知道它不是真正的2分钟。我的&#34; setInterval&#34;基于 在你原来的setInterval。
HTML:
<h1 id='session' onclick='general()'>1</h1>
JS:
<script>
var seconds = 60;
var x = document.getElementById('session').innerHTML;
var t;
function timer(){
if (x === 0 && seconds === 0)
{
stoptimer(t);
}
else if(seconds === 0){
seconds = 60;
x--;
}
else{
seconds--;
}
document.getElementById('session').innerHTML = x + ':' + seconds;
}
function stoptimer(){
clearInterval(t);
}
var on = true;
function general(){
if(on){
on=false;
t = setInterval(timer,200);
}else{
on=true;
stoptimer();
}
}
</script>
答案 2 :(得分:0)
问题在于计时器的功能,所以我对你的功能进行了一些修改,并重写了它。我在jsfiddle中运行它并且它正在工作。
function timer(){
if(x>=0 && flag==false){
seconds--;
if(seconds<10){
seconds='0'+seconds;
};
if(seconds==0){
x--;
seconds=60;
}
}
if (x == -1){
flag=true;
x = 0;
seconds = '00';
}
document.getElementById('session').innerHTML=x+':'+seconds;
}
确保您使用全局变量var flag=false;
才能正常运行此功能。
这是我创建的jsfiddle的链接:composition
我希望有所帮助。