如何在 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);