jQuery窗口滚动事件未触发
我试图通过jquery对div实现一个简单的“停留在视口内”行为。为此,我需要将一个函数绑定到窗口的滚动事件,但我似乎无法启动它:什么都没有发生。我尝试了一个简单的警报(),console.log(),没有骰子。知道我做错了什么吗 此代码:jQuery窗口滚动事件未触发,jquery,window,scroll,Jquery,Window,Scroll,我试图通过jquery对div实现一个简单的“停留在视口内”行为。为此,我需要将一个函数绑定到窗口的滚动事件,但我似乎无法启动它:什么都没有发生。我尝试了一个简单的警报(),console.log(),没有骰子。知道我做错了什么吗 此代码: $(window).scroll(function () { console.log("scrolling"); }); 位于script.js中,位于html文件的最底部 <script src="
$(window).scroll(function () {
console.log("scrolling");
});
位于script.js中,位于html文件的最底部
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="js/script.js"></script>
</body>
</html>
更新
测试URL:
中的
和
之间声明您的jQuery
.scroll()
事件包装在CSS实际上是将文档的其余部分设置为不显示溢出,因此文档本身不会滚动。最简单的修复方法是将事件绑定到正在滚动的对象,在您的例子中是
div#page
因此,改变很容易:
$(document).scroll(function() { // OR $(window).scroll(function() {
didScroll = true;
});
到
我的问题是我的css中有这个代码
html,
body {
height: 100%;
width: 100%;
overflow: auto;
}
一旦我删除了它,窗口上的滚动事件再次启动似乎对我来说什么都不起作用,但这成功了
$(parent.window.document).scroll(function() {
alert("bottom!");
});
不管你怎么做,对谁来说都不管用(像我一样):
很有魅力
正如他们在W3学校所解释的那样
解决方案是:
$('body').scroll(function(e){
console.log(e);
});
在我的例子中,您应该将函数放入
$(document).ready
$(document).ready(function () {
$('div#page').on('scroll', function () {
...
});
});
页面内容是否足够长?工作完美:如果没有可以滚动的内容,则不会引发
滚动事件。您的示例页面绑定到$(文档)。滚动尝试$(窗口)。滚动似乎滚动未触发与您使用css的方式有关,我现在正在做一些测试。还发现body标签上有overflow-x
,导致滚动事件也没有触发!在Chrome和Firefox中复制。@BU0我也发现了这一点(事实上,你的评论刚刚解决了我遇到的一个难题)。谢谢。不,也不行。将把链接放在网上,这样你们就可以看到它(不是)发生了。好吧,那么当设计一个像开篇文章一样的页面时,一般应该注意什么呢?还有更多的案例会引发这样的问题吗?哇,老兄,你让我开心极了。我整天都在讨论这个问题。在我的情况下,翻页效果很好。该抽支雪茄了!我有一个类似的问题,我的问题是html,body{height:100%;…}这导致滚动不起作用(grails应用程序中的默认设置)救了我一天!!我被这件事困扰了一段时间。我的问题是身体{height:100vh;}
谢谢!我也有同样的问题。看起来scroll
事件不能很好地处理css溢出的元素。甚至连带有scrollTop
的动画都被窃听到了。。。谢谢分享!作为将来的参考,在我的例子中,尝试使用Materialiecss的pushpin组件()是不起作用的,因为高度:在html和正文上也是100%!
$(parent.window.document).scroll(function() {
alert("bottom!");
});
$('body').scroll(function(e){
console.log(e);
});
$(document).ready(function () {
$('div#page').on('scroll', function () {
...
});
});