我有此代码,当我向下滚动时,它将继续滚动,而向上滚动时将保持不变。
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)
}
});
但是,这并没有停止间隔。该功能仅与其他功能矛盾
答案 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)