jquery.infinitescroll.js插件的作用是:随着浏览器窗口滚动,不刷新页面自动加载下一页内容,常用于文章列表页面。常见的手机浏览网站的文章列表,浏览到最后一篇时,自动加载更多的文章出来。
插件官网和下载:https://infinite-scroll.com/
基本用法
在html文件的<head></head>之间引用插件文件:
<script src="https://unpkg.com/infinite-scroll@3/dist/infinite-scroll.pkgd.min.js"></script>
HTML结构:
<div id="content">
<div class="post">...</div>
......
</div>
<div class="navigation">
<a href="next1.html">正在加载...</a>
</div>
注意:正在加载的链接页面next1.html,后面加载的页面要直接换成一页的页面url,如next2.html、next3.html
插件代码:
$('#content').infinitescroll({ //#content是包含所有图或块的容器
navSelector : "div.navigation", //导航的容器,成功后会被隐藏
nextSelector : "div.navigation a:first", // 包含下一页链接的容器
itemSelector : "#content div.post" // 你将要取来的内容块
});
常用参数
$('#content').infinitescroll({
navSelector : "div.navigation", //导航的选择器,会被隐藏
nextSelector : "div.navigation a:first",//包含下一页链接的选择器
itemSelector : "#content div.post",//你将要取回的选项(内容块)
debug : true, //启用调试信息
loadingImg : "/img/loading.gif", //加载的时候显示的图片
//默认采用:"http://www.infinite-scroll.com/loading.gif"
animate : true, //当有新数据加载进来的时候,页面是否有动画效果,默认没有
extraScrollPx: 50, //滚动条距离底部多少像素的时候开始加载,默认150
bufferPx : 40,//载入信息的显示时间,时间越大,载入信息显示时间越短
errorCallback: function(){},//当出错的时候,比如404页面的时候执行的函数
localMode : true //是否允许载入具有相同函数的页面,默认为false
},function(arrayOfNewElems){
//程序执行完的回调函数
});
//取消绑定事件的函数写法:
$(window).unbind(‘.infscr’);
//通过事件触发加载数据的写法:
$(document).trigger(‘retrieve.infscr’); //比如加到某个click事件中
//此插件还可以载入任何页面的容器中的内容,可以是id以及是class,并转化到html存储,要比jquery自带的的load强大。
$('').load('/page/2/ #content div.post',function(){ $(this).appendTo('#content'); });
示例
1、只要还有下一页,就会一直加载,直接加载完所有页面的文章为止
$('#content').infinitescroll({
navSelector : '#pagenav',
nextSelector : '#pagenav a',
itemSelector : ".picdiv",
debug : false,
loadingImg : "ajax-loader.gif",
loadingText : "Loading new posts...",
animate : false,
donetext : "I think we've hit the end, Jim"
},function(){});
<div id="content">
<div class="picdiv">...</div>
......
</div>
<span id="pagenav" style="display:none" > <a href="index.php?page=2&show=">Next</a></span>
2、加到第10页就不再继续加载
var sp = 1
$(".infinite_scroll").infinitescroll({
navSelector: "#more",
nextSelector: "#more a",
itemSelector: ".item",
loading:{
img: "images/masonry_loading_1.gif",
msgText: ' ',
finishedMsg: '木有了',
finished: function(){
sp++;
if(sp>=10){ //到第10页结束事件
$("#more").remove();
$("#infscr-loading").hide();
$("#page").show();
$(window).unbind('.infscr');
}
}
},errorCallback:function(){
$("#page").show();
}
},function(newElements){
var $newElems = $(newElements);
$newElems.fadeIn();
return;
});
<div class="infinite_scroll">
<div class="item">...</div>
......
</div>
<div id="more"><a href="p2.html"></a></div>
原文地址:https://blog.csdn.net/axer0811/article/details/8965872/