在日常工作中,分页很常用,但有时候,不想让后端处理,改为前端 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>相关资源: