在日常工作中,分页很常用,但有时候,不想让后端处理,改为前端 JS 实现分页效果。
前端分页通常适用于数据量不大的情况;由后端返回全部数据,再由前端分页处理。
在这里推荐 Pagination.js 插件。
在使用前,配置2个 div,一个用于展示分页,一个用于展示数据。
如,page 和 data_list。之后,通过 dataSource 设置数据,通过 callback 对这里数据进行处理。
<!DOCTYPE html> <html> <head> <title>Paginationjs 插件简单使用</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="http://pagination.js.org/dist/2.6.0/pagination.css" rel="stylesheet" type="text/css"> <style type="text/css"> ul, li { list-style: none; } #wrapper { width: 900px; margin: 20px auto; } </style> </head> <body> <div id="wrapper"> <section> <div class="page"></div> <div class="data_list"></div> </section> </div> <script src="http://code.jquery.com/jquery-3.6.1.js"></script> <script src="http://pagination.js.org/dist/2.6.0/pagination.js"></script> <script> $(function() { $('.page').pagination({ // 设置数据 dataSource: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], // 设置分类大小 pageSize:2, // 设置分页样式 ulClassName:"pagination pagination-sm inline", // 显示导航提示 showNavigator: true, // 配置提示内容 formatNavigator: '显示 <%= rangeStart %>-<%= rangeEnd %> 条, 共计 <%= totalNumber %>', // 显示跳转框 showGoInput: true, // 显示跳转按钮 showGoButton: true, // 配置跳转展示内容 formatGoInput: '跳转到 <%= input %> 页', // 配置跳转按钮文字 goButtonText: "Go!", // 数据处理 callback: function (response, pagination) { var dataHtml = '<ul>'; $.each(response, function (index, item) { dataHtml += '<li>' + item + '</li>'; }); dataHtml += '</ul>'; $(".data_list").html(dataHtml); } }); }); </script> </body> </html>
相关资源: