检测鼠标滚轮使用但保持页面滚动(javascript / jquery)

时间:2013-08-28 10:52:50

标签: javascript jquery scroll mousewheel

我需要检测鼠标轮的使用情况,但是当我添加一个事件监听器时,无论我如何摆弄它,它都会阻止整个页面滚动。我也试过使用Brandon的mousewheel插件无济于事。我需要像这个模拟代码一样简单的东西:

用户使用了鼠标滚轮: 布尔=真

如果boolean == true: 执行代码,然后将布尔值更改回false,直到下一次使用鼠标轮。

我是新手,所以不要过分了,谢谢。

2 个答案:

答案 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