如何在不使用scrollTop的情况下检查滚动顶部或底部?

时间:2014-10-09 10:01:09

标签: jquery scroll jquery-animate

您好有办法检查是否有办法检查鼠标滚轮事件的上下,而不检查上次滚动的位置。由于我已禁用滚动并使用了动画而不是滚动。

var currentTop = 0;    
var scrolling = false;
var allowNextAnimation = true;

$('.contactDiv').on('scroll touchmove mousewheel', function(e){
if (!scrolling && allowNextAnimation) {

    if (scrollTop)
       currentTop = currentTop + 70;
    else if (scrollDown)
       currentTop = currentTop - 70;
    scrolling = true;
    $('.contactDiv').animate({
        scrollTop: currentTop
    }, 500, function(){
        scrolling = false;
        allowNextAnimation = false;
    });

    return false;
}
allowNextAnimation = true;
});

我需要一些方法来了解鼠标是否向上或向下滚动而不知道scrollTop在哪里。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

对于鼠标滚轮事件:

$('html, body').on('mousewheel MozMousePixelScroll', function (event) {
    var delta = event.originalEvent.wheelDelta * -1
                  || event.originalEvent.detail;
    if(delta < 0){
        console.log('scroll up');
    } else {
        console.log('scroll down');
    }
});

如果中间容器到达顶部/底部并继续向上/向下滚动鼠标滚轮,则可以在jsFiddle上看到example阻止鼠标滚轮滚动300毫秒。在300毫秒不活动后,您可以滚动文档。

对于触摸事件跟踪pageY事件属性