javascript - Jquery ajax 无限滚动排除页脚高度

标签 javascript jquery html css ajax

我正在研究 ajax 无限滚动。我有下面的代码在滚动结束后发出 ajax 请求,

$(window).scroll(function(){
if($(window).scrollTop() >= ($(document).height() - $(window).height())){
    loadlist();
}
});

但它会在滚动到最后(包括页脚)时触发。但我希望在滚动时页脚刚开始显示时触发它(页脚高度为 300 像素)。

我研究并尝试了以下代码,

$(window).scroll(function(){
if($(window).scrollTop() >= ($(document).height() - $(window).height()) - 300){ // 300px footer height
    loadlist();
}
});

但它看起来很脏。滚动时该函数被触发太多次。有什么好的解决方案吗?

最佳答案

我会采用在您的页脚元素首次滚动到 View 中时触发行为的方法。

var $footer = $("#my-footer");

$(window).scroll( function() {
    if (isScrolledIntoView($footer) ) loadList();
});

参见 Check if element is visible after scrolling获取 isScrolledIntoView() 的代码。

关于javascript - Jquery ajax 无限滚动排除页脚高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30834597/

相关文章:

c# - jQuery AJAX 回发到 WebMethod 仅返回第一行结果

javascript - 面膜不起作用?

html - 如何在 CSS 中使这些比例正确(带有水平和垂直附件的 block )

javascript - 如何在javascript中删除特定的dom表

javascript - 关于ajax/javascript/jquery页面数据结构的建议

javascript - AngularJs MMenu 指令

javascript - 如何调试/解决递归ajax追加重复项?

javascript - $http() 不是一个函数

javascript - 事件上的 JQuery 加载脚本(单击)

javascript - 即使我返回 false,基金会也会继续刷新页面