2014-10-09 117 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事件性質

相關問題