1. 简介
layui是一款非常优秀的前端开发框架,拥有很多实用的组件和API,其中laypage组件是比较实用的分页组件。本文将介绍layui laypage组件的常见用法。
2. 基本使用
laypage组件的基本使用非常简单,只需要引入相关的CSS和JS文件,然后按照指定的结构创建分页组件即可。以下是一个基本示例:
<div id="demo"></div>
<script src="layui.js"></script>
<script>
layui.use('laypage', function(){
var laypage = layui.laypage;
//执行一个laypage实例
laypage.render({
elem: 'demo', //注意,这里的 test1 是 ID,不用加 # 号
count: 50, //数据总数,从服务端得到
limit:10 //每页显示条数
});
});
</script>
2.1 laypage.render() 方法的参数说明:
elem:指定laypage渲染的容器,可以是容器的id或class
count:数据总数,从服务端获取
limit:每页显示条数,默认为10
groups:连续显示分页数,默认为5
curr:当前页码值,默认为1
prev:分页左侧显示的文字,默认为“上一页”
next:分页右侧显示的文字,默认为“下一页”
first:分页最左侧显示的文字,默认为第一页
last:分页最右侧显示的文字,默认为最后一页
layout:指定分页组件的布局,默认值为'prev,page,next,limit,skip',可选值为'prev,first,page,last,next,limit,skip'
theme:分页组件的主题风格,可选值有:#0077FF, #1E9FFF, #FF5722, #5FB878, #FFB800, #01AAED, #999, #393D49, #c9c9c9(默认为#0077FF)
jump:触发分页后的回调函数,参数包括当前分页信息和分页元素,详见后面的示例代码
2.2 默认分页组件的样式
laypage组件自带了默认的分页样式,使用者只需要在页面中添加一个id为demo的div容器,并引入layui.css和layui.js即可,代码如下:
<!-- laypage默认分页组件样式 -->
<link rel="stylesheet" href="layui.css">
<!-- 引入laypage组件的js文件 -->
<script src="layui.js"></script>
<!-- 在页面中添加一个id为demo的div元素 -->
<div id="demo"></div>
<!-- 初始化分页组件 -->
<script>
layui.use('laypage', function(){
var laypage = layui.laypage;
laypage.render({
elem: 'demo',
count: 50
});
});
</script>
2.3 自定义分页组件的样式
如果使用laypage自带的分页组件样式不能满足您的需求,您可以自定义分页组件的样式。以下示例代码演示如何自定义分页组件的样式:
<!-- 引入laypage组件的js文件 -->
<script src="layui.js"></script>
<!-- 自定义分页组件样式 -->
<style>
.my-page .layui-laypage-prev {
margin-right: 5px;
}
.my-page .layui-laypage-next {
margin-left: 5px;
}
.my-page .layui-laypage-prev, .my-page .layui-laypage-next {
color: #aaa;
cursor: pointer;
}
.my-page .layui-laypage-curr {
background-color: #0077FF;
border-color: #0077FF;
color: #fff;
}
.my-page .layui-laypage-spr {
margin: 0 10px;
}
.my-page .layui-laypage-skip input {
height: 28px;
width: 30px;
color: #666;
text-align: center;
border: 1px solid #e2e2e2;
outline: none;
}
.my-page .layui-laypage-skip input::-webkit-input-placeholder {
color: #999;
}
.my-page .layui-box {
display: inline-block;
}
.my-page .layui-laypage .layui-box {
margin-right: 10px;
}
.my-page .layui-laypage .layui-laypage-curr .layui-laypage-em {
background-color: #0077FF;
border-color: #0077FF;
}
.my-page .layui-laypage .layui-laypage-next:hover, .my-page .layui-laypage .layui-laypage-prev:hover {
color: #0077FF;
}
</style>
<!-- 创建一个自定义样式的分页组件 -->
<div id="demo2" class="my-page"></div>
<!-- 初始化分页组件 -->
<script>
layui.use('laypage', function(){
var laypage = layui.laypage;
laypage.render({
elem: 'demo2',
count: 50,
theme: '#393D49', //指定分页组件的主题风格
layout: ['page', 'limit', 'count', 'prev', 'next', 'skip'], //改变分页组件的布局
limit: 10, //每页显示条数
jump: function(obj,first){
//obj包含了当前分页的所有参数,比如:obj.curr代表当前页码,obj.limit代表每页显示的条数
//first为true时,表示首次渲染
if(!first){
//do something
}
}
});
});
</script>
3. 数据绑定
laypage组件支持数据绑定功能,使用者可以在分页控件中绑定和显示自定义的数据。以下是一个实现数据绑定的示例:
<!-- 引入laypage组件的js文件 -->
<script src="layui.js"></script>
<!-- 创建一个用于显示绑定数据的容器 -->
<div id="demo3"></div>
<!-- 初始化分页组件 -->
<script>
layui.use('laypage', function(){
var laypage = layui.laypage;
//模拟从服务器端获取数据
var data = [
{"username":"user1","age":18},
{"username":"user2","age":19},
{"username":"user3","age":20},
{"username":"user4","age":21},
{"username":"user5","age":22},
{"username":"user6","age":23},
{"username":"user7","age":24},
{"username":"user8","age":25},
{"username":"user9","age":26},
{"username":"user10","age":27},
{"username":"user11","age":28},
{"username":"user12","age":29},
{"username":"user13","age":30},
{"username":"user14","age":31},
{"username":"user15","age":32},
{"username":"user16","age":33},
{"username":"user17","age":34},
{"username":"user18","age":35},
{"username":"user19","age":36},
{"username":"user20","age":37},
{"username":"user21","age":38},
{"username":"user22","age":39},
{"username":"user23","age":40},
{"username":"user24","age":41},
{"username":"user25","age":42},
{"username":"user26","age":43},
{"username":"user27","age":44},
{"username":"user28","age":45},
{"username":"user29","age":46},
{"username":"user30","age":47}
];
//将数据绑定到HTML中
function bindData(curr,limit){
var html = '';
for(var i=(curr-1)*limit;i<Math.min(curr*limit,data.length);i++){
html += '<div>' + data[i].username + ' ' + data[i].age + '</div>';
}
$('#demo3').html(html);
}
laypage.render({
elem: 'demo3',
count: data.length, //数据总数,从服务端得到
limit:3, //每页显示条数
jump: function(obj,first){
//obj包含了当前分页的所有参数,比如:obj.curr代表当前页码,obj.limit代表每页显示的条数
//first为true时,表示首次渲染
if(!first){
//绑定数据
bindData(obj.curr,obj.limit);
}else{
//首次初始化
bindData(1,3);
}
}
});
});
</script>
4. 总结
以上就是layui laypage组件的常见用法总结。通过本文的介绍,相信大家已经了解了如何使用laypage组件进行分页控件的开发,并掌握了其常见用法。在使用过程中如果遇到问题,可以参考官方文档或在社群中寻求帮助。