前两天做一个小的项目的时候,遇到了一个页面分页的问题。刚刚开始做的时候感觉是一脸的懵逼,觉得如果自己敲的话可能会敲很多很多,对于这种东西在网上肯定是有教程或者是方法的,于是按照惯例我就在万能百度上去找啊找,
因为本人是一枚新手所以感觉对自己还是有点的启发的,下面我就将我所学到的给大家看看!
多功能JavaScript分页组件 layPage
layPage是一款多功能的js分页组件,即适用于异步分页,又可用于传统的整页刷新跳页,还支持信息流加载,并且可无缝迁移至Node.js平台。layPage不依赖于任何第三方库,直接拿来用即可,它的接口继承了layui系列组件的一贯简洁,极易上手。那么,从现在开始,将一切分页的任务交给layPage吧!
异步分页
1 //以下将以jquery.ajax为例,演示一个异步分页 2 $.getJSON('test/demo1.json', {curr: 6}, function(res){ //从第6页开始请求。返回的json格式可以任意定义 3 laypage({ 4 cont: 'page1', //容器。值支持id名、原生dom对象,jquery对象。【如该容器为】:<div id="page1"></div> 5 pages: res.pages, //通过后台拿到的总页数 6 curr: 6, //初始化当前页 7 jump: function(e){ //触发分页后的回调 8 $.getJSON('test/demo1.json', {curr: e.curr}, function(res){ 9 e.pages = e.last = res.pages; //重新获取总页数,一般不用写 10 //渲染 11 var view = document.getElementById('view1'); //你也可以直接使用jquery 12 var demoContent = (new Date().getTime()/Math.random()/1000)|0; //此处仅仅是为了演示 13 view.innerHTML = res.content + demoContent; 14 }); 15 } 16 }); 17 });
整页刷新式跳转
//好像很实用的样子,后端的同学再也不用写分页逻辑了。 laypage({ cont: 'page11', pages: 18, //可以叫服务端把总页数放在某一个隐藏域,再获取。假设我们获取到的是18 curr: function(){ //通过url获取当前页,也可以同上(pages)方式获取 var page = location.search.match(/page=(d+)/); return page ? page[1] : 1; }(), jump: function(e, first){ //触发分页后的回调 if(!first){ //一定要加此判断,否则初始时会无限刷新 location.href = '?page='+e.curr; } } });
感觉是不是轻松好多好多,我用到的就是这两种了,在我看来还是比较好的。
友情提示:方法虽好只有学到的才是自己的
例子出处:http://laypage.layui.com/这里还有很多的例子,不用谢-请叫我雷锋