当我使用scrollWheel
时,我将currentSlide
加1,当currentSlide === 2
时红色div正在上升,我想启用滚动到正文。如您所见,我的绑定函数正在返回false
。我尝试在return true
currentSlide === 2
时设置条件,但显然它不会起作用。
有人可以向我解释如何解决这个问题吗?
var currentSlide = 0;
function scrollDown() {
console.log('Scroll Down', currentSlide);
if(currentSlide < 3) {
currentSlide += 1;
}
if(currentSlide === 3) {
$('#el').addClass('hide');
}
}
答案 0 :(得分:4)
从技术上讲,当currentSlide
等于3而不是2时,你隐藏了元素。
无论如何,你需要做return false;
绑定而不是return currentSlide >= 3;
,这样当红色div被隐藏时,你现在可以滚动了。
另外,其他人注意到使用on
而不是bind
,因为已弃用bind。
答案 1 :(得分:3)
我完全不确定你要做什么,因为你的问题和预期结果还不清楚
我将代码编写如下
var currentSlide = 0;
function scrollDown() {
console.log('Scroll Down', currentSlide);
if(currentSlide < 10) {
currentSlide += 1;
return false;
}
if(currentSlide === 10) {
$('#el').addClass('hide');
}
}
$(window).on('DOMMouseScroll', function(e) {
if (e.originalEvent.detail > 0) {
return scrollDown();
}
})
.on('mousewheel', function(e) {
if (e.originalEvent.wheelDelta < 0) {
return scrollDown();
}
});
通过使用on(你应该)并让scrollDown返回一个布尔值假如果不好去,如果没有任何事情可以返回任何内容。
答案 2 :(得分:2)
我只是将return true
放在最后一个函数上,一切似乎都正常,请参阅here:
$(window).bind('DOMMouseScroll', function(e) {
if (e.originalEvent.detail > 0) {
scrollDown();
}
return false;
})
.bind('mousewheel', function(e) {
if (e.originalEvent.wheelDelta < 0) {
scrollDown();
}
return true;
});