js分页插件laypage的简单应用
之前一直用layer弹出层,感觉效果还挺好的。今天偶然看到了layer作者开发的另外一个插件,laypage。一个js分页插件,依旧是挺好用的。主页地址:http://laypage.layui.com/,有兴趣的可以去研究一下。下面我演示一个简单的异步获取的demo,结合php来实现。
1、新建一个文件夹 laypage
2、将下载下来的laypage插件解压放到laypage文件夹中
3、新建一个index.html 以及一个 index.php
index.html的代码如下:
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>layPage demo</title> 6 </head> 7 <body> 8 9 <ul id="view1"></ul> <!-- 此处显示每页的数据 --> 10 11 <div id="page1"></div> <!-- 此处显示分页页码 --> 12 13 <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> 14 <script type="text/javascript" src="laypage/laypage.js"></script> 15 <script type="text/javascript"> 16 //以下将以jquery.ajax为例,演示一个异步分页 17 function demo(curr){ 18 $.getJSON('index.php', { 19 page: curr || 1 //向服务端传的参数 20 }, function(res){ 21 //根据逗号拆分获取的数据 22 var content = res.content; 23 var _html = ""; 24 for( var i = 0; i < content.length; i++ ){ 25 _html += "<li>" + content[i] + "</li>"; 26 } 27 document.getElementById('view1').innerHTML = _html; 28 //显示分页 29 laypage({ 30 cont: 'page1', //容器。值支持id名、原生dom对象,jquery对象 31 pages: res.pages, //通过后台拿到的总页数 32 curr: curr || 1, //当前页 33 jump: function(obj, first){ //触发分页后的回调 34 if(!first){ //点击跳页触发函数自身,并传递当前页:obj.curr 35 demo(obj.curr); 36 } 37 } 38 }); 39 }); 40 }; 41 //运行 42 demo(); 43 </script> 44 45 </body> 46 </html>
当访问页面的时候,会向后台index.php发送一个请求,并把当前的页码通过get传参的方式以page为参数传到后台,后台只要接受这个参数,然后根据自己的逻辑分页取出数据就可以了。前台插件需要的参数就是分页的页数,以及分页的内容。
index.php
1 <?php 2 //Author: NickBai <1902822973@qq.com> 3 4 //模拟数据库的总数据 5 $data = [ 6 '北京', 7 '上海', 8 '广州', 9 '深圳', 10 '杭州', 11 '长沙', 12 '合肥', 13 '宁夏', 14 '成都', 15 '西安', 16 '南昌', 17 '上饶', 18 '沈阳', 19 '济南', 20 '厦门', 21 '福州', 22 '九江', 23 '宜春', 24 '赣州', 25 '宁波', 26 '绍兴', 27 '无锡', 28 '苏州', 29 '徐州', 30 '东莞', 31 '佛山', 32 '中山', 33 '成都', 34 '武汉', 35 '青岛', 36 '天津', 37 '重庆', 38 '南京', 39 '九江', 40 '香港', 41 '澳门', 42 '台北' 43 ]; 44 45 $pages = count( $data ); //总页数 46 $pageSize = 5; //每页显示5条 47 $pages = ceil( $pages/$pageSize ); //每页显示5条数据后的总页数 48 49 $nowPage = $_GET['page']; //当前页码 50 51 $content = array_slice( $data, ($nowPage - 1) * $pageSize, $pageSize ); //模拟每页的数据 52 53 echo json_encode( ['pages' => $pages, 'content' => $content] );
效果如下:
声明:本文内容仅是本人学习的记录,不保证在项目中可用,若引用此代码导致了严重后果,本人不承担任何法律责任。