jquery - 如何检测滚动方向

标签 jquery scroll direction

我想在有人向下滚动某个元素时运行一个函数。像这样的事情:

 $('div').scrollDown(function(){ alert('down') });
 $('div').scrollUp(function(){ alert('up') });

但是这些功能并不存在。这个问题有解决办法吗? Awwwards似乎能够做到这一点(导航栏中的 Logo 根据滚动方向而变化)。不幸的是,源代码被压缩了,所以运气不好。

最佳答案

我最终找到了答案,所以如果有人正在寻找答案:

 //Firefox
 $('#elem').bind('DOMMouseScroll', function(e){
     if(e.originalEvent.detail > 0) {
         //scroll down
         console.log('Down');
     }else {
         //scroll up
         console.log('Up');
     }

     //prevent page fom scrolling
     return false;
 });

 //IE, Opera, Safari
 $('#elem').bind('mousewheel', function(e){
     if(e.originalEvent.wheelDelta < 0) {
         //scroll down
         console.log('Down');
     }else {
         //scroll up
         console.log('Up');
     }

     //prevent page fom scrolling
     return false;
 });

关于jquery - 如何检测滚动方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154967/

相关文章:

javascript - 在使用ajax发送之前将表单数据转换为json

javascript - JQuery:在解析 HTML 时防止加载图像

android - 创建一个不带 ScrollView 的可滚动 LinearLayout

javascript - 如何使我的滚动流畅?

android - 检测适配器中的滚动方向(上/下)

javascript - 无法使用对象文字模块模式访问变量并应用某些 CSS

javascript - 在 DOM 中查找模式并使用 jquery 替换它的内容

jquery - 滚动中另一个元素中的偏置元素

c++ - SFML平台碰撞

javascript - Morris.js Line-Chart 第一个值在右侧