我正在尝试构建一个在网格视图中显示图像的Web应用程序。我已经实现了所谓的无限滚动功能,它运行良好。问题是我添加了一个500像素的缓冲区,以便在到达页面末尾之前开始加载新图像,但这个缓冲区不受尊重。我必须在触发之前滚动到绝对底部。我该怎么办?
我正在使用此解决方案:http://www.hawkee.com/snippet/9445/
这是我的滚动代码:
$(window).scroll (function () {
if ($(window).scrollTop () >= $(document).height () - $(window).height () - 500) {
if (!self.loading) {
if (self.stop) { return; }
if (!self.pause) { self.append (); }
}
}
});
答案 0 :(得分:0)
您使用的是哪个版本的jQuery?我最近刚刚实现了你所描述的几乎完全正确的东西。您可以尝试查看$(document).offset()['top']
,看看您的body
元素是否已向上移动。
所有if()
语句也可能会降低浏览器的速度并降低scroll()
事件发生率。如果这种情况很糟糕,您可以在触发事件之前深入滚动缓冲区。
提高速度的提示:
>=
运算符替换为>
,以节省一些(可能忽略不计的)处理能力。如果以下内容不起作用,则它是您的jQuery版本或其他一些代码。
$(window).scroll(function(e){
if(!self.loading && !self.stop && !self.pause && ($(window).scrollTop() + $(window).height()) > $(document).offset()['top'] + $(document).height() - 500){
self.append();
}
})
干杯,
麦克