如何在不使用scrollTop的情况下检查滚动顶部或底部?
问题描述:
嗨有没有办法检查是否有方法来检查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在哪里。有什么建议?
答
对于鼠标滚轮事件:
$('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事件性质
对于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