另一个功能无法停止

时间:2020-02-12 12:00:46

标签: javascript

我有此代码,当我向下滚动时,它将继续滚动,而向上滚动时将保持不变。

var currentpos = 0

function scrollwindow1() {
    currentpos = window.pageYOffset + 1
    window.scroll(0, currentpos)
}

function scrollwindow() {
    currentpos = window.pageYOffset - 1
    window.scroll(0, currentpos)
}
$('body').on('mousewheel', function(e) {
    if (e.originalEvent.wheelDelta > 0) {
        console.log('up 3');
        clearInterval("scrollwindow1()")
        setInterval("scrollwindow()", 20)
    } else {
        console.log('down 3');
        clearInterval("scrollwindow()")
        setInterval("scrollwindow1()", 20)
    }
});

但是,这并没有停止间隔。该功能仅与其他功能矛盾

2 个答案:

答案 0 :(得分:1)

清除时间间隔,您需要首先将时间间隔分配给变量。然后,您可以使用clearInterval(intervalVariable)清除分配的时间间隔。

查看clearInterval上的文档,以查看更多示例。

var interval = null;
$('body').on('mousewheel', function(e) {
    if (e.originalEvent.wheelDelta > 0) {
        console.log('up 3');
        if (interval !== null) {
          clearInterval(interval);
        }
        interval = setInterval(scrollwindow, 20);
    } else {
        console.log('down 3');
        if (interval !== null) {
          clearInterval(interval);
        }
        interval = setInterval(scrollwindow1, 20);
    }
});

答案 1 :(得分:1)

首先为您的setInterval命名,例如:

var interval = setInterval(function () { console.log('Log') }, 1000)

然后使用clearInterval函数将其停止

clearInterval(interval)