Javascript 网页的jQuery滚动功能不起作用?
我正在尝试设置网页的滚动,但工作不正常 我想要的是,当有人滚动到页脚元素的中间或至少在页脚元素前面一点时,我想触发滚动事件,然后像触发滚动事件一样等待10到15秒,数据通过ajax加载,这需要时间,每次当有人再次向下滚动页脚时,数据都会加载应再次触发滚动功能 我现在的工作如下,但我希望将其增强到上述要求:Javascript 网页的jQuery滚动功能不起作用?,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,我正在尝试设置网页的滚动,但工作不正常 我想要的是,当有人滚动到页脚元素的中间或至少在页脚元素前面一点时,我想触发滚动事件,然后像触发滚动事件一样等待10到15秒,数据通过ajax加载,这需要时间,每次当有人再次向下滚动页脚时,数据都会加载应再次触发滚动功能 我现在的工作如下,但我希望将其增强到上述要求: $(document).on('scroll', function() { if($(this).scrollTop()>=$('footer').position().top)
$(document).on('scroll', function() {
if($(this).scrollTop()>=$('footer').position().top){
$('div#load_more').click();
}
});
使用以下函数使用$window而不是$document:
$(window).on('scroll', function(e) {
alert("Scrolled");
});
使用$window而不是$document
//helper函数完全按照它所说的做
函数睡眠时间{
返回新PromiseSolve=>setTimeoutresolve,时间;
}
var$canfetch=true;
$window.on'scroll',function e{
var scrollHeight=$window.scrollTop;
var scrollPosition=$。突出显示[0]。偏移;
//如果用户已到达页面底部,将触发下一个滚动事件的休眠功能。
如果滚动位置滚动高度{
警报已经过了15秒;
//返回页首
$window.scrollTop0;
$canfetch=true;
};
}
};
.好的{
高度:500px;
}
.亮点{
高度:20px;
文本对齐:居中;
背景颜色:黄色;
}
参考点
我刚刚对您的代码进行了JSFIDLE测试,并得出以下结论: A.假设页脚在div中 如果使用class='footer',则必须使用 $'.footer'.position.top 如果您使用的是id='footer',则必须使用$'footer'.position.top b。我添加了console.log$this.scrollTop+'~~ footer positionon top是'+$'.footer'.position.top;并发现该条件从未满足。 1671 ~~当我一直向下滚动时,页脚位置在顶部是1868 希望这有点帮助
旁注:您可能需要考虑一个很酷的插件,称为Ajax加载,以获得类似的特性。
为什么您在IF语句中运行一个单击,而不是直接调用Ajax?另外,在javascript中,只调用.click不会触发click事件。你需要这样做。触发“点击”;为此,我不能直接调用ajax,因为ajax是通过单击其他地方调用的,这就是原因。除此之外,是的,我将其改为。触发“单击”,我想如果这两者都以相同的方式工作。这里的要点是什么?虽然这个代码片段可以解决这个问题,但确实有助于提高您文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!我想要的是在下一次滚动事件触发之间有15秒的延迟。你能在其中嵌入页脚或任何元素吗?例如,当有人滚动到元素时,也就是说,当元素显示得稍微正确时,滚动应该被触发,而不是完全正确吗?@UmairShahYousafzai请检查编辑的页面回答当用户到达页面底部时,会触发睡眠功能。@UmairShahYousafzai您的意思是,不要到达页面底部而停止,直到它到达某个元素?是的,如果在用户接近底部(像素)时也添加了额外的代码,我也会这样做。