我正在尝试在滚动期间进行延迟加载。下面是代码:
$(window).scroll(
function() {
if ($(window).scrollTop() > ($(document).height() - $(window).height() - 200) && !loadNews))
{
loadNews = true;
loadMoreNewsItems();
}
});
LoadMoreNewsItems()进行AJAX调用并追加数据,如果AJAX调用成功,则将loadNews标志再次设置为false。
以上实现正确吗?由于newsitems下面的页脚块,我减去了200。
当我们检查时,有时用户必须滚动到页脚以加载更多新站点。我正在移动设备上进行检查。这里可能是什么?
而且,有时当我们快速滚动时,会有多个AJAX请求。但是,我添加了loadNews标志来避免这种情况。但是,它也不起作用。
请帮忙。
最佳答案
这就是我用来无限滚动的方式
var d=document;
var remainingHeight=d.scrollHeight - d.clientHeight - (d.scrollTop || document.body.scrollTop);
if(remainingHeight < 500){
//do the loading process
}
您应该尝试一下它而不是当前的测试,它应该可以解决手机的问题。
另外,关于多个ajax请求和您的标志,问题是&&!loadNews未正确放置在您的测试中,它位于错误的括号内。