Jquery鼠标滚轮检测滚动位置工作不正确

时间:2016-02-15 13:20:28

标签: jquery position detect mousewheel

您好我在我的网站上做了一些js部分,并且遇到了鼠标滚动问题。

这是我的代码如何检测向上或向下滚动。

$(window).on({
    'mousewheel': function (e) {
        e.preventDefault();
        e.stopPropagation();
    }
});


$(window).on('mousewheel DOMMouseScroll', function (event) {
    event.preventDefault();
    var delta = event.originalEvent.wheelDelta || -event.originalEvent.detail;

    if(delta > 0) {
        //up
    }else {
        //down
    }
});

我不明白出了什么问题。它的作用就像随机我向下滚动它向上或向上滚动它向下或它正常工作。我可以使用其他解决方案检测位置而无需插件。当我用触摸板而不是鼠标滚动滚动它时,它也很疯狂

谢谢你的时间

2 个答案:

答案 0 :(得分:1)

有效:https://jsfiddle.net/fvd3jqdq/2/

$(window).bind('mousewheel DOMMouseScroll', function(event)
{
    if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
        //UP
    }
    else{
        //DOWN
    }
});

答案 1 :(得分:1)

对于水平滚动

,这个答案可能很有趣
    $(window).bind('mousewheel DOMMouseScroll', function(event)
    {
        var delta_one = event.originalEvent.wheelDelta;
        var delta_two = event.originalEvent.detail;
        var mydelta = delta_one || delta_two;
        var left = $('.yourDiv').scrollLeft();
        $('.yourDiv').scrollLeft(left + mydelta);    
    });