簡單分頁:
效果圖:
思路:javascript
數據渲染=》數據遍歷(每頁顯示已規定好的條數).bindList()和執行分頁渲染.initPaginator()
點擊分頁和下一頁的時候,從新請求數據渲染,對應的數據從新遍歷。css
代碼實現:html
html:java
<!doctype html> <html style='' lang="en"> <head> <title>分頁測試</title> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0"/> <script src="https://cdn.bootcss.com/jquery/2.1.0/jquery.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"/> <style> * {margin: 0;padding: 0;} .list li{display: block;} .list li img{display: block;width:100px;} </style> </head> <body> <div class="list"> <ul id="listContent"> <li></li> </ul> </div> <div id="pagination" style="display: none"> <ul class="pagination"></ul> </div> </body> </html>
js:jquery
<script type="text/javascript"> var List = { contentId: "listContent", //渲染列表id pageId: "pagination", //渲染分頁id pageIndex: 1, //第幾頁開始渲染 pageSize: 6,//每頁渲染多少條數據 pageSum:0,//共多少條數據 refreshId: null }; //data.count爲總的數據條數,即共多少條數據 List.loadList = function (pageIndex) { var ajaxRequest = function () { $.ajax({ url: "http://123.56.196.192:2000/syxa/news-consult/2/0/1000000", type: "GET", // data: data, error: function () { // console.log(error); }, success: function (data) { console.log(data); console.log(data.data.length); if (data.count == 0) { console.log('當前沒有數據記錄'); } else { if(pageIndex == 1){ List.initPaginator(data.count, data.data); $('#' + List.pageId).show(); $('.pagination li[data-page="1"]').addClass('active'); $('.pagination li.page-first').removeClass('active').addClass('disabled'); } List.bindList(pageIndex,data.count,data.data); } } }); } ajaxRequest(); }; //數據遍歷 List.bindList = function (pageIndex,count,data) { var start = (pageIndex - 1) * List.pageSize; // 數據開始點 var content = ''; for (var index = start; index < pageIndex*List.pageSize && index < data.length; index++) { //遍歷第幾頁內容,pageIndex也頁面順序 console.log(data[index]); content += List.getListItem(data[index]); } $('#' + List.contentId).html(''); $('#' + List.contentId).append(content); }; List.getListItem = function (item) { var content = ''; content += ' <li>'; content += ' <a href="javascript:;"><img src="' + item.top_img + '" alt="' + item.title + '" /></a>'; content += ' <h4>' + item.title + '</h4>'; content += ' </li>'; return content; }; //分頁 List.initPaginator = function (count, data) { var pageSize = List.pageSize; var pageTotal = Math.ceil(count / pageSize); var pageIndex = List.pageIndex; List.pageSum = pageTotal; console.log(pageTotal); var html = ""; for (var i = pageIndex; i <= pageTotal; i++) { html += '<li class="page" data-page="' + i + '"><a href="javascript:;">' + i + '</a></li>'; } html = '<li data-page="1" class="page-first"><a href="javascript:;">首頁</a></li>' + '<li data-page="" class="page-prev disabled"><a href="javascript:;" >上一頁</a></li>' + html + '<li data-page="2" class="page-next"><a href="javascript:;">下一頁</a></li>' + '<li data-page="' + pageTotal + '" class="page-last"><a href="javascript:;">末頁</a></li>'; $('#' + List.pageId).find('ul').html(html); }; //點擊頁碼刷新跳數據 $('#' + List.pageId).on('click','li',function (e) { var pageIndex=parseInt($(this).attr('data-page')); var activeIndex=parseInt($('.pagination li.active').attr('data-page'));//當前active狀態頁碼 $('.pagination li').removeClass('active'); if($(this).hasClass('page-prev')) { List.loadList(activeIndex-1); var cur=activeIndex-1; $('.page-next,.page-last').removeClass('disabled'); $('.pagination li.page[data-page=' + cur + ']').addClass('active'); if(cur == 1){ $('.page-prev,.page-first').addClass('disabled'); $('.page-prev').attr('data-page',''); }else{ $('.page-prev').attr('data-page',activeIndex-2); $('.page-next').attr('data-page',activeIndex); } }else if($(this).hasClass('page-next')){ List.loadList(activeIndex+1); var cur=activeIndex+1; $('.page-prev,.page-first').removeClass('disabled'); $('.pagination li.page[data-page=' + cur + ']').addClass('active'); if(cur == List.pageSum){ $('.page-next,.page-last').addClass('disabled'); $('.page-next').attr('data-page',''); }else{ $('.page-prev').attr('data-page',activeIndex); $('.page-next').attr('data-page',activeIndex+2); } }else if((!$(this).hasClass('page-prev')) &&(!$(this).hasClass('page-next'))){ $(this).addClass('active'); List.loadList($(this).attr('data-page')); } if(!($(this).hasClass('page-first')) && !($(this).hasClass('page-prev'))&& !($(this).hasClass('page-last')) && !($(this).hasClass('page-next'))){ if(pageIndex == 1){ $('.page-prev,.page-first').addClass('disabled'); $('.page-next,.page-last').removeClass('disabled'); $('.page-next').attr('data-page','2'); }else if(pageIndex == List.pageSum){ $('.page-prev,.page-first').removeClass('disabled'); $('.page-next,.page-last').addClass('disabled'); $('.page-prev').attr('data-page',List.pageSum-1); $('.page-next').attr('data-page',''); }else{ $('.page-prev,.page-first').removeClass('disabled'); $('.page-next,.page-last').removeClass('disabled'); $('.page-prev').attr('data-page',pageIndex-1); $('.page-next').attr('data-page',pageIndex+1); } } }); //頁面初始化 $(function () { List.loadList(List.pageIndex); }); </script>