发生了什么:无论我滚动鼠标的哪个位置,滚动都可以工作。fullpage.js:使用容器内的鼠标指针滚动时禁用页面滚动
我想达到的效果:当用户使用位于特定容器内的鼠标指针滚动时,我想禁用更改页面的插件。当与相同的容器外侧的鼠标指针的用户滚动,插件的常规功能应恢复;即页面应该可以再滚动。
我试过了什么:我听了文档上的滚动事件,发现鼠标在执行滚动时是否在容器内,并将可能性存储为布尔值。
$(document).bind("mousewheel", function(event) {
// preventScroll = true;
console.log(event);
if($(event.target).closest(".no-scroll").length) {
preventScroll = true;
}
else {
preventScroll = false;
}
});
然后onLeave
我试图找出preventScroll的价值,并试图阻止事件传播(因为要停止实际事件)通过我的使用setTimeout
捕捉返回false
setTimeout(function() {
console.log(preventScroll);
if(preventScroll) {
console.log("no-scroll")
return false;
}
}, 10);
的preventScroll
所需的值,虽然我猜的插件会执行10 ms
内滚动,这就是为什么return false
似乎没有产生效果。我似乎无法弄清楚是怎么回事着手实现所需的功能。
Codepen:https://codepen.io/binarytrance/pen/YxBqPj
在此实现,我想禁用滚动容器是在第二页/部分。请注意控制台中的值。