setinterval的函数在没有在javascript中调用的情况下执行

时间:2018-01-16 10:05:58

标签: javascript function setinterval

我有以下功能,只有在点击按钮时才会向下滚动页面

function scrollToHome(){
    if (window.innerHeight = 123){
        for(i=0; i<=123; i++){
            window.scrollBy(0, i);
        }
    }
}
var myInterval = setInterval (scrollToHome, 1000);
homeButton.addEventListener("click", myInterval);
clearInterval(myInterval);

事情是,在保存代码时,函数会自动开始无限执行。

1 个答案:

答案 0 :(得分:1)

你必须在一个函数中包装你的间隔。

var myInterval = null;

function scrollToHome(){
    if (window.innerHeight = 123){
        for(i=0; i<=123; i++){
            window.scrollBy(0, i);
        }
    }
    if (condition && myInterval) clearInterval(myInterval);
}

homeButton.addEventListener("click", function () {
     myInterval = setInterval(scrollToHome, 1000);
});