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

Jquery ajax infinite scroll exclude footer height

本文关键字:高度 排除 滚动 ajax 无限 Jquery      更新时间:2023-09-26

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

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

但是当在末尾滚动时它会触发(包括页脚)。但我希望它在滚动时页脚刚刚开始显示时触发(页脚高度为 300px)。

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

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

但它似乎很脏。 滚动时该函数被触发的次数过多。 有什么好的解决方案吗?

我会采取在页脚元素首次滚动到视图中时触发行为的方法。

var $footer = $("#my-footer");
$(window).scroll( function() {
    if (isScrolledIntoView($footer) ) loadList();
});

请参阅滚动后检查元素是否可见以获取isScrolledIntoView()的代码。