我试图捕捉鼠标滚轮是否被触发以及它是否向上或向下滚动而没有实际滚动页面(正文有溢出:隐藏).
任何想法是如何使用jQuery或纯JavaScript实现这一点?
$(window).scroll(function(){
if( /* scroll up */){ }
else { /* scroll down */ }
});
最佳答案
我很少推广插件,但这个插件非常好(而且尺寸相对较小):
https://plugins.jquery.com/mousewheel/
它允许做这样的事情:
$(window).mousewheel(function(turn,delta) {
if (delta == 1) // going up
else // going down
// all kinds of code
return false;
});
http://codepen.io/anon/pen/YPmjym?editors=001
更新 – 此时如果不需要支持旧版浏览器,则可以使用wheel事件替换mousewheel插件:
$(window).on('wheel',function(e) {
var delta = e.originalEvent.deltaY;
if (delta > 0) // going down
else // going up
return false;
});