如何在 if 语句为真时停止 setinterval 函数
how to stop setinterval function when an if statment is true
我创建了一个将元素移动 1 px 的函数,并使用 setInterval 在特定时间重复它代码:
var Elementt = document.querySelector('.h');
var left = 0;
var speed = 100;
var limit = 10;
setInterval(function MoveByOnepixel() {
if (left > limit ){
} else {
Elementt.style.left = left + 'px';
left++;
}
}, speed);
问题是当 Left > limit 是 setinterval 停止还是要不停地重复?
如果它重复,当 if 语句为真时我该如何停止它?
您可以改用 setTimeout
function MoveByOnepixel() {
Elementt.style.left = left + 'px';
left++;
if (left < limit) {
setTimeout(MoveByOnepixel, speed);
}
}
setTimeout(MoveByOnepixel, speed);
我创建了一个将元素移动 1 px 的函数,并使用 setInterval 在特定时间重复它代码:
var Elementt = document.querySelector('.h');
var left = 0;
var speed = 100;
var limit = 10;
setInterval(function MoveByOnepixel() {
if (left > limit ){
} else {
Elementt.style.left = left + 'px';
left++;
}
}, speed);
问题是当 Left > limit 是 setinterval 停止还是要不停地重复?
如果它重复,当 if 语句为真时我该如何停止它?
您可以改用 setTimeout
function MoveByOnepixel() {
Elementt.style.left = left + 'px';
left++;
if (left < limit) {
setTimeout(MoveByOnepixel, speed);
}
}
setTimeout(MoveByOnepixel, speed);