我需要检测鼠标轮的使用情况,但是当我添加一个事件监听器时,无论我如何摆弄它,它都会阻止整个页面滚动。我也试过使用Brandon的mousewheel插件无济于事。我需要像这个模拟代码一样简单的东西:
用户使用了鼠标滚轮: 布尔=真
如果boolean == true: 执行代码,然后将布尔值更改回false,直到下一次使用鼠标轮。
我是新手,所以不要过分了,谢谢。
答案 0 :(得分:0)
如果您的函数返回false,则根据JavaScript框架,可能会影响滚动的默认行为。
我建议只触发自定义事件来收听你的滚动。
这样的事情:
$(document).mousewheel(function(e){
$(document).trigger('MyApp/ScollHappened', iCanPassValues);
});
在您的应用中稍高一些,您可以在不干扰真实滚动事件的情况下执行计算。
$(document).on('MyApp/ScrollHappened', function(event, ...){
//Doing my calculations
})
答案 1 :(得分:0)
我认为你需要这样的东西。请记住,这也将检测键盘滚动(向下键)。如果你只想检测滚动:
$(window).scroll(function () {
//scroll
);
如果你想在向上和向下滚动之间推迟:
var lastScrollTop = 0;
$(window).scroll(function () {
var st = $(this).scrollTop();
//downscroll
if (st > lastScrollTop){
}
//upscroll
else{
}
lastScrollTop = st;
);
对不起,我的回答不是您要找的。使用Abdul Sy的答案,而不是滚动,看看这个来绑定鼠标滚轮事件 - http://www.jquerysdk.com/api/event-mousewheel