我正在使用以下代码,当滚动条到达底部时,该代码将正常工作,
if($(window).scrollTop() == $(document).height() - $(window).height()){
但是我希望当我达到滚动的70%而不是100时触发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%,就会触发下一个请求。在我的固定示例中,仅当用户位于屏幕底部的绝对像素范围内时,定义的底部偏移才会加载新内容。
我在同一个页面上有5个div和相同的类名="post"。我还得到一个变量名p=1。 我想做的是,当我滚动div1时,它应该将p值增加1意味着现在对于div1,p=2。 然后,如果我滚动div2,它应该增加p值1意味着p=2现在div2。等等。如果我再次滚动div2,p值必须是p=3。 若我滚动div4,p值必须是2,若我滚动div1,p值上次是2。现在必须是3。 但当我滚动div1,p变成p=2时
定义 滚动加载组件,可选方向(向上滚动、向下滚动)。 图片展示 代码演示 import InfiniteLoader from 'pile/dist/components/infiniteloader' import PermissionsCard from 'pile/dist/components/permissionsCard' const _Ringloading = React.cre
在我的应用程序中,我使用,当用户向下滚动时,它可以继续加载图像。但这让我遇到了一个我无法解决的问题。基本上,我是说 所以,我真的很困惑如何做到这一点。作为额外的信息,这是我的整个活动: 希望你们能帮帮我:)
问题内容: 我使用jQuery Tools Plugin作为图像滑块(此处为image ),但是由于图像数量巨大,我一次只需要加载几次。由于它是用JavaScript编码的,因此我无法知道滚动位置。我想在最后一张图片出现时立即加载它们。我不知道我放在哪里,事件监听器也什么都没有。 这是我的代码http://jsfiddle.net/PxGTJ/ 请给我一点光! 问题答案: 我只需要使用jQuery
问题内容: 我有一个具有静态高度和样式的元素中的搜索结果列表。我只想加载搜索结果的前x个(例如20个),并在用户滚动到包含搜索结果的元素的底部时加载另一个x个结果。 谁能向我解释我将如何做?我找到了一些示例,但所有示例都使用了整个文档的滚动值,而不是单个。我正在使用jQuery,如果有关系的话。 问题答案: 对我来说,听起来像是您想在滚动条即将结束时检测滚动条的位置。 在jquery组上四处搜寻时
问题内容: 无论如何,我可以做到这一点,以便在内容加载后(通过Ajax)页面自动滚动到顶部吗? 这是我显示内容的代码: 因此,在“视图区域”加载其内容之后,我可以使页面自动滚动到顶部吗? 问题答案: 只需使用滚动功能 如果您要使用jQuery,那么这里是一个很好的平滑示例:) 从链接: 放入代码中