【发布时间】:2012-09-29 00:54:06
【问题描述】:
我有一个页面,当用户滚动到底部时,我需要动态加载 ajax 内容。问题是 JQuery 没有返回正确的窗口高度。我以前使用过这个函数,从未见过它失败,但由于某种原因,它会返回与文档高度相同的值。我这里有测试页面:bangstyle.com/test-images
我已将警报编码为在页面加载时显示,以及每当用户滚动到顶部下方 500 像素时显示:
function scroller() {
if($(window).scrollTop() > 500){
delay(function(){ //200ms wait
pagecounter++;
sideshow();
alert("window height: " + $(window).height() + " scrolltop: " + $(window).scrollTop() + " document height: " + $(document).height());
return false;
}, 200 );
}
}
我之前尝试过发布此内容,但由于没有得到解决方案而将其删除。我希望可以发布指向我的测试页面的链接。顺便说一句,我已经在 Mac Safari 和 Mac FF 上对此进行了测试。我在其他页面上运行了相同的代码,它工作正常。我觉得这个页面的 dom 中一定有什么东西导致 JS 失败,但不知道那会是什么。
【问题讨论】:
-
您应该使用“无限滚动”JQuery 插件来做到这一点。这里的一些项目:jquery4u.com/tutorials/jquery-infinite-scrolling-demos/…
-
谢谢。我看过那些,但我真的很想自己解决这个问题。如果我知道尺寸,我可以让它工作,但无论出于何种原因 window.height() 失败,我真的真的很想理解为什么。此代码在我使用过的其他页面上运行良好。
-
测试了什么?你怎么知道窗口高度不正确?发布测试链接不仅可以,而且实际上非常有用(并向其他人展示您已尝试解决问题);一张图值一千字,一个例子值两千字。
-
Kato,我将在加载 ajax 内容时获得与文档高度匹配的窗口高度值。例如,文档高度可能是 2200 像素,而我得到的窗口高度值与此匹配,即使我的窗口高度小于 1000 像素。在我发布的链接中,我为页面加载时以及用户从顶部滚动超过 500 像素的任何时间设置了 js 警报。 bangstyle.com/test-images
标签: javascript jquery window height