js 鼠标滚动事件的问题

我想问问Chrome下滚轮滚动事件的问题。 我这写了个tab切换绑定了滚轮事件,问题是每个tab里面的div都会有滚动。 我想问的是如何判断鼠标所在区域 如果不在tab里面的div滚动切换tab生效。如果在div里面如果div自身有滚动不生效,没有滚动的话则生效。

        function scrollFunc(e){
        var direct=0; 
        e=e || window.event; 
        var direct = e.wheelDelta > 0 ? 1 : -1;//1:向上 ,-1:向下
        alert(direct);
    }
    window.onmousewheel=scrollFunc;
阅读 7.2k
1 个回答

一个最傻X的方法:

1、获得鼠标当前位置所在元素(使用document.elementFromPoint

2、检查该元素(el)是否el.scrollHeight==el.offsetHeight && el.scrollWidth==el.offsetWidth,如果是的话,当然就是不可滚动的,否则就是可滚动的

3、递归检查该元素的祖先(ancestor)是否可滚动

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题