2012-06-08 25 views
0

我试图建立其显示在一个网格视图图像的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

什么版本的jQuery您使用的是?我最近刚刚实现了你正在描述的内容,并且它完美地工作。您可能想尝试查看$(document).offset()['top']以查看您的body元素是否向上移动。

也有可能所有if()语句都会降低浏览器的速度,并且会降低事件率scroll()。如果这种情况发生,您可能会在触发事件之前深入滚动缓冲区。

提示,以加快这:

  • 复杂的比较之前将您的简单/二进制检查。这样一来,如果他们返回false,你有没有浪费时间计算什么
  • >更换>=运营商节省一些(可能是微不足道的)的处理能力。

如果以下情况不起作用,那么它是您的jQuery版本或其他一些代码行。

$(window).scroll(function(e){ 
    if(!self.loading && !self.stop && !self.pause && ($(window).scrollTop() + $(window).height()) > $(document).offset()['top'] + $(document).height() - 500){ 
    self.append(); 
    } 
}) 

干杯,

迈克