翻页器 / Pager

优质
小牛编辑
126浏览
2023-12-01

简单版本

<div class="container">
  <div id="pager" class="ui-pager"></div>
</div>
require(['jquery', 'moye/Pager'], function ($, Pager) {
  new Pager({
    main: document.getElementById('pager'),
    page: 0,
    first: 0,
    total: 10,
    padding: 3
  })
  .render();
});

设置总页面

与下拉框组合使用,设置总页码

require(['jquery', 'moye/Pager'], function ($, Pager) {
  new Pager({
    main: document.getElementById('pager-normal'),
    page: 1,
    first: 1,
    total: 5,
    showCount: 10,
    lang: {
      prev: '◀',
      next: '▶'
    },
    getPageItemHTML: function (page, part) {
      var className = this.getItemClassName(Array.prototype.slice.call(arguments, 1).concat('item'));

      return ''
        + '<a href="#" data-page="' + page + '" '
        +  'class="' + className + '">'
        +  '●'
        + '</a>';
    }
  })
  .render();
});

自定义页码展现

require(['jquery', 'moye/Pager'], function ($, Pager) {

  new Pager({
    main: document.getElementById('pager-normal'),
    page: 1,
    first: 1,
    total: 5,
    showCount: 10,
    lang: {
      prev: '◀',
      next: '▶'
    },
    getPageItemHTML: function (page, part) {
      var className = this.getItemClassName(Array.prototype.slice.call(arguments, 1).concat('item'));

      return ''
        + '<a href="#" data-page="' + page + '" '
        +  'class="' + className + '">'
        +  '●'
        + '</a>';
    }
  })
  .render();
  
});

精简版分页

require(['jquery', 'moye/Pager'], function ($, Pager) {

  new Pager({
    main: document.getElementById('pager-simple'),
    page: 1,
    first: 1,
    total: 5,
    showCount: 10,
    mode: 'simple'
  })
  .render();
  
});

精简版分页灵活运用

require(['jquery', 'moye/Pager'], function ($, Pager) {

  new Pager({
    main: document.getElementById('pager-simple-change'),
    page: 1,
    first: 1,
    total: 5,
    showCount: 10,
    mode: 'simple',
    getPageItemHTML: function (page) {
      return ' 当前第<input value="'
          + page
          + '" style="width: 20px;text-align:center" />'
          + '页,共' + this.total + '页 ';
    }
  })
  .render();
  
});

分页 getPage 和 setPage 使用

require(['jquery', 'moye/Pager'], function ($, Pager) {

  var pagerTest = new Pager({
    main: document.getElementById('pager-set'),
    page: 1,
    first: 1,
    total: 5,
    showCount: 10,
    mode: 'simple',
    getPageItemHTML: function (page) {
      return ' 当前第<input value="'
          + page
          + '" style="width: 20px;text-align:center" />'
          + '页,共' + this.total + '页 ';
    }
  })
  .render();

  $('#pager-set-prev').click(function () {
    var page = pagerTest.getPage();

    // pagerTest.setPage(page - 1);
    pagerTest.set('page', page - 1);
  });

  $('#pager-set-next').click(function () {
    var page = pagerTest.getPage();

    pagerTest.setPage(page + 1);
  });
  
});

全部配置参数

属性名 类型 说明
disabled boolean 控件的不可用状态
main HTMLElement 控件渲染容器
page number 当前页(第一页从0开始)
first number 起始页码,默认为0
padding number 当页数较多时,首尾显示页码的个数
showAlways boolean 是否一直显示分页控件
showCount number 当页数较多时,中间显示页码的个数
total number 总页数
anchor string 跳转链接
mode string 分页类型(normal/simple)
getPageItemHTML function 分页item字符串
lang Object<string, string=""></string,> 用于显示上下页的文字
lang.prev string 上一页显示文字(支持HTML)
lang.next string 下一页显示文字(支持HTML)
lang.ellipsis string 省略处显示文字(支持HTML)

在页面切换的时候可以绑定回调事件 onChange