栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

当滚动达到80%时加载ajax

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

当滚动达到80%时加载ajax

如果滚动到页面底部时当前触发检查,则可以尝试一些基本算法:

if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.7){         //where 0.7 corresponds to 70% --^

如果还没有,请确保添加一个检查以免同时触发多个Ajax请求。

这完全超出了问题的范围,但是如果您想要一个示例,说明如何防止同时触发多个请求:

声明一个全局变量,例如

processing

然后将其合并到您的函数中:

if (processing)    return false;if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.7){    processing = true; //sets a processing AJAX request flag    $.post("url", '<params>', function(data){ //or $.ajax, $.get, $.load etc.        //load the content to your div        processing = false; //resets the ajax flag once the callback concludes    });}

这是一个使用var来跟踪滚动功能是否存在活动Ajax请求的简单示例,它不会干扰您可能拥有的任何其他并发Ajax请求。

编辑:JSFiddle示例

请注意,使用%来度量文档高度可能不是一个好主意,因为每次加载某些内容时文档的高度都会增加,这会导致Ajax请求离页面底部的距离相对更远(绝对尺寸明智的)。

我建议使用固定值偏移量来防止这种情况发生(200-700左右):

if ($(window).scrollTop() >= $(document).height() - $(window).height() - 700){// pixels offset from screen bottom   --^

示例:JSFiddle

编辑: 要在第一个代码中以百分比重现该问题,请在其中加载50

div
s。当您加载next时
div
,它将仅增加文档总高度的2%,这意味着只要将这2%滚动回到文档高度的70%,就会触发下一个请求。在我的固定示例中,仅当用户位于屏幕底部的绝对像素范围内时,定义的底部偏移才会加载新内容。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392169.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号