为什么不'我的定时器功能倒计时
Why doesn't my timer function count down?
我正在进行一个创建pomodoro时钟的个人项目。我开始尝试创建一个带有启动和停止按钮的25分钟倒计时计时器。我包含了一个计时器函数,它应该每1000毫秒倒计时一次我的变量,但它不起作用。这是我的HTML:
Pomodoro时钟
<div id="timer" class="circle">Timer</div>
<button onclick="setTimeout(timer, 1000);">Start</button>
<button>Stop</button>
Javascript:
var i = 25;
document.getElementById("timer").innerHTML = i;
function timer(){
setInterval(function(){i--}, 1000);
}
我猜这可能与我的计时器功能有关?
document.getElementById("timer").innerHTML = i;
这里,i
的当前值被分配给innerHTML
。它不是通过引用传递的。
JavaScript中唯一通过引用传递的数据类型是对象(普通对象、函数、数组等)。
您需要在间隔的每次迭代中将i
的新值分配给innerHTML
:
setInterval(function(){
i--;
document.getElementById("timer").innerHTML = i;
}, 1000);
您需要在setInterval()
回调中更新innerHTML
。您还可以使用clearInterval()
清除间隔。我刚刚删除了setTimeout()
,因为setInterval()
在延迟之后启动。
var i = 25,
ele = document.getElementById("timer");
ele.innerHTML = i, inter;
function timer() {
inter = setInterval(function() {
ele.innerHTML = --i;
if (i == 0) clearInterval(inter);
}, 1000);
}
function stop() {
clearInterval(inter);
}
<div id="timer" class="circle">Timer</div>
<button onclick="timer()">Start</button>
<button onclick="stop()">Stop</button>
试试这个
var i = 25;
function timer(){
setInterval(function(){
i--;
document.getElementById("timer").innerHTML = i;
}, 1000);
}
您只在脚本开始时设置innerHTML
一次。每次运行函数时都需要执行此操作。
document.getElementById("timer").innerHTML = i;
function timer(){
setInterval(function(){
i--;
document.getElementById("timer").innerHTML = i;
}, 1000);
}
您需要在interval函数中更新div。
var i = 25;
var timerDiv = document.getElementById("timer");
function timer() {
setInterval(function() {
timerDiv.innerHTML = i--;
}, 1000);
}
.circle {
background-color: red;
color: white;
border-radius: 20px;
display: inline-block;
width: 40px;
height: 40px;
text-align: center;
font-weight: bold;
font-family: sans-serif;
line-height: 40px;
}
<div id="timer" class="circle">Timer</div>
<button onclick="setTimeout(timer, 1000);">Start</button>
<button>Stop</button>
相关文章:
- 如何在php/javascript中制作定时器和警报
- 双倒计时定时器
- 一个定时器事件会在多大程度上减慢我在JavaScript中的代码
- 使用角度间隔计时器功能
- 如何使这个JavaScript定时器正常工作
- 定时器输出保存
- 在两次java定时器循环后重定向访问者
- 如何解决jquery自定义定时器问题
- 如何为PHP/JS游戏制作倒计时/定时器
- vue.js使用定时器自动重新加载/刷新数据
- jquery ajax调用后,表分类器功能不起作用
- 定时器功能在多次停止和启动时无法正常工作
- 在路由器主干中插入定时器功能
- 在定时器降到零时禁用点击计数器功能;游戏结束”;
- 为什么不'我的定时器功能倒计时
- 定时器功能不工作在ie11使用jscript apex页面
- 如何重置和设置定时器功能
- 在尝试恢复暂停(停止)功能时卡住-番茄定时器
- angular js定时器功能在停止按钮上不起作用
- 如何停止定时器,如果功能执行正确