jQuery窗口滚动事件不会启动

pix*_*ine 45 jquery scroll window

我试图通过jquery在div中实现一个简单的"保持在视口内"的行为.为此我需要将一个函数绑定到窗口的滚动事件,但我似乎无法启动它:没有任何反应.我尝试过一个简单的alert(),console.log()没有骰子.我在做错什么?

这段代码:

$(window).scroll(function () {  
            console.log("scrolling");           
});
Run Code Online (Sandbox Code Playgroud)

坐在我的html文件最底部的script.js中

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="js/script.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

更新 测试网址:http://pixeline.eu/test/menu.php

Cha*_*her 105

好的,解决了.

您的CSS实际上是将文档的其余部分设置为不显示溢出,因此文档本身不会滚动.最简单的解决方法是将事件绑定到滚动的东西,在你的情况下是div #page.

所以它很容易改变:

$(document).scroll(function() {  // OR  $(window).scroll(function() {
    didScroll = true;
});
Run Code Online (Sandbox Code Playgroud)

$('div#page').scroll(function() {
    didScroll = true;
});
Run Code Online (Sandbox Code Playgroud)

干杯
查理

  • 我的问题是html,身体{身高:100%; ...}这导致滚动不起作用(默认在grails应用程序中) (4认同)

dig*_*dio 29

我的问题是我在我的CSS中有这个代码

html,
body {
    height: 100%;
    width: 100%;
    overflow: auto;
}
Run Code Online (Sandbox Code Playgroud)

删除后,窗口上的滚动事件再次触发

  • 我在这里遇到了同样的问题.看起来`scroll`事件不能很好地处理带有css`overflow`的元素.那就是用`scrollTop`来动画甚至是动画......感谢分享! (3认同)

小智 5

$('#div').scroll(function () {
   if ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight-1) {

     //fire your event


    }
}
Run Code Online (Sandbox Code Playgroud)