Layui快速入门之第十四节 分页

目录

一:基本用法

API

渲染

属性

二:自定义主题

三:自定义文本

四:自定义排版

五:完整显示


一:基本用法

分页组件 laypage 提供了前端的分页逻辑,使得我们可以很灵活处理不同量级的数据,从而提升渲染效率

html 复制代码
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>分页</title>
  <link rel="stylesheet" href="//res.layui.com/layui/dist/css/layui.css" media="all">
</head>
<body>
<div id="test"></div> 
<script src="//res.layui.com/layui/dist/layui.js"></script>
<script>
layui.use('laypage', function(){
  var laypage = layui.laypage;
  
  //执行一个laypage实例
  laypage.render({
    elem: 'test' //注意,这里的 test 是上面的 ID,不用加 # 号
    ,count: 100 //数据总数,从服务端得到
    ,limit: 10 //默认显示10条
  });
});
</script>

</body>
</html>

API

API 描述
var laypage = layui.laypage 获得 laypage 模块。
laypage.render(options) laypage 组件渲染,核心方法。

渲染

laypage.render(options);

属性

属性名 描述 类型 默认值
elem 绑定分页容器。值可以是容器 id 或 DOM 对象。如: * elem: 'id' 注意:这里不能加 # 号 * elem: document.getElementById('id') string DOM -
count 数据总数。一般通过后端得到 number -
limit 每页显示的条数。 number 10
limits 每页条数的选择项。 若 layout 参数开启了 limit ,则会出现每页条数的 select 选择框 array [10,...,50]
curr 初始化当前页码。 number 1
groups 连续出现的页码数量 number 5
prev 自定义"上一页"的内容,支持传入普通文本和 HTML string 上一页
next 自定义"下一页"的内容,用法同上。 string 下一页
first 自定义"首页"的内容,用法同上。 string 1
last 自定义"尾页"的内容,用法同上。 string 自动获得
layout 自定义分页功能区域排版。可自由排列,可选值有: * count 数据总数区域 * prev 上一页区域 * page 分页区域 * next 下一页区 * limit 条目选项区域 * refresh 页面刷新区 * skip 快捷跳页区 array 查看默认值
theme 自定义主题。支持传入:颜色值或任意普通字符。如: * theme: '#c00' 直接设置当前页按钮背景色 * theme: 'xxx' 会生成 class="layui-laypage-xxx" 的 CSS 类,以便自定义主题 string -
hash 设置 hash 名称。设置该属性后,点击分页将会自动对当前 url 追加:#{hash}={curr},从而在页面刷新时初始化当前页码。#详细用法参考示例 string -
回调函数
jump 分页跳转后的回调函数。函数返回两个参数: * 参数 obj : 当前分页相关的所有选项值 * 参数 first : 是否首次渲染,一般用于初始加载的判断 1. laypage.render({ 2. elem: 'id', 3. count: 70, // 数据总数,从后端得到 4. jump: function(obj, first){ 5. console.log(obj.curr); // 得到当前页,以便向服务端请求对应页的数据。 6. console.log(obj.limit); // 得到每页显示的条数 7. 8. // 首次不执行 9. if(!first){ 10. // do something 11. } 12. } 13. });
html 复制代码
<div id="demo-laypage-normal-1"></div>
<div id="demo-laypage-normal-2"></div>
<script>
layui.use(function(){
  var laypage = layui.laypage;
  // 普通用法
  laypage.render({
    elem: 'demo-laypage-normal-1',
    count: 50 // 数据总数
  });
  laypage.render({
    elem: 'demo-laypage-normal-2',
    count: 100 // 数据总数
  });
});
</script>

二:自定义主题

html 复制代码
<div id="demo-laypage-theme-1"></div>
<div id="demo-laypage-theme-2"></div>
<div id="demo-laypage-theme-3"></div>
<script>
layui.use(function(){
  var laypage = layui.laypage;
  // 自定义主题
  laypage.render({
    elem: 'demo-laypage-theme-1',
    count: 100,
    theme: '#1E9FFF'
  });
  laypage.render({
    elem: 'demo-laypage-theme-2',
    count: 100,
    theme: '#FF5722'
  });
  laypage.render({
    elem: 'demo-laypage-theme-3',
    count: 100,
    theme: '#FFB800'
  });
});
</script>

三:自定义文本

html 复制代码
<div id="demo-laypage-text"></div>
<script>
layui.use(function(){
  var laypage = layui.laypage;
  // 自定义文本
  laypage.render({
    elem: 'demo-laypage-text',
    count: 100,
    first: '首页',
    last: '尾页',
    prev: '<em>←</em>',
    next: '<em>→</em>'
  });
});
</script>

四:自定义排版

html 复制代码
<div id="demo-laypage-layout-1"></div>
<div id="demo-laypage-layout-2"></div>
<div id="demo-laypage-layout-3"></div>
<script>
layui.use(function(){
  var laypage = layui.laypage;
  // 自定义排版
  laypage.render({
    elem: 'demo-laypage-layout-1',
    count: 1000,
    layout: ['limit', 'prev', 'page', 'next']
  });
  laypage.render({
    elem: 'demo-laypage-layout-2',
    count: 1000,
    layout: ['prev', 'next', 'page']
  });
  laypage.render({
    elem: 'demo-laypage-layout-3',
    count: 1000,
    layout: ['page', 'count']
  });
});
</script>

五:完整显示

html 复制代码
<div id="demo-laypage-all"></div>
<script>
layui.use(function(){
  var laypage = layui.laypage;
  // 完整显示
  laypage.render({
    elem: 'demo-laypage-all', // 元素 id
    count: 100, // 数据总数
    layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip'], // 功能布局
    jump: function(obj){
      console.log(obj);
    }
  });
});
</script>
相关推荐
牛蛙点点申请出战25 分钟前
IconFontViewer -- 一个可以在 Android Studio 中实时预览 IconFont 的插件
android·前端·intellij idea
空中海27 分钟前
03 渲染机制、性能优化与现代 React
javascript·react.js·性能优化
ChalesXavier1 小时前
Fetch API 的基本用法
javascript
是上好佳佳佳呀1 小时前
【前端(十三)】JavaScript 数组与字符串笔记
前端·javascript·笔记
巴沟旮旯儿1 小时前
vite项目配置文件和打包
前端·设计模式
彩票管理中心秘书长1 小时前
Pinia 插件架构与组合式函数:如何让你的 Store 长出“超能力”
前端
彩票管理中心秘书长1 小时前
Pinia 比 Vuex 强在哪?我用同一个模块写了两种实现,你自己看
前端
yingyima1 小时前
用 Cron 加 Webhook 打通自动化工作的任督二脉
前端
JackieDYH1 小时前
CSS Flexbox 与 Grid 的默认行为-布局的底层机制
前端·css·html