2014-10-09 85 views
0

嗨有没有办法检查是否有方法来检查mousewheel事件上或下而不检查上次滚动的位置。因为我禁用了我的滚动功能,并使用动画而不是滚动。如何在不使用scrollTop的情况下检查滚动顶部或底部?

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在哪里。有什么建议?

+0

对于mousewhell,检查这个答案:http://stackoverflow.com/questions/18880159/use-jquery-to-check-mousewheel-event-without-scrollbar。对于刷卡事件,我建议您使用http://hammerjs.github.io/。如果你有兴趣,我可以给你解答一个答案。 – drinchev 2014-10-09 10:04:24

回答

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 ms后,您可以滚动文档。

对于触摸事件追踪pageY事件性质

相关问题