jQuery检测unscrollable元素上的滚动

时间:2014-11-21 04:42:18

标签: javascript scroll detect

我希望能够检测到不可滚动元素上的$.scroll();。此类元素的示例可能是overflow:hidden;,但具体来说它是绝对div,宽度100%高度和宽度。 我想在这个div上滚动事件。

<div id="js_bgElem" style="width: 100%; height: 100%; position: absolute;"></div>

<script>
    $('#js_bgElem').on('scroll', function(){
        alert('Scrolled!);
    });
</script>

明显的问题是,它不起作用。我想过只绑定mousewheel甚至键盘键,但是这不会检测到每个可能的滚动事件。例如移动向下滚动,或者如果有人重新加入或使用某种不同的滚动。

我想过制作一个额外的叠加元素,这个元素是不可见的。

<div id="js_anchor" style="width: 100%; height: 100%; position: fixed; z-index: 1; overflow: auto;">
    <div style="height: 300%"></div> <!-- Simple stretch -->
</div>

<script>
    $('#js_anchor').on('scroll', function(){
         // detect which way is scrolling
         // $(this).scrollTop(50%) so it can be scrolled infinitely
    });
</script>

哪个理论上可行,但是,它无法点击。添加pointer-events: none;后,系统不再检测到scroll

那么,有人可以帮我一把吗?感谢。

0 个答案:

没有答案