资讯专栏INFORMATION COLUMN

带省略的分页

Thanatos / 1045人阅读

这个ajax分页是基本jquery来实现的,足以满足正常需求。。。

效果:

HTML:

CSS:

.zh-page{height: 20px;padding: 20px 0;text-align: right;}
.zh-page ul{display: inline-block;height: 20px;}
.zh-page ul li{float: left;height: 20px;line-height: 20px;margin: 0 3px;color: #fff;font-size: 14px;}
.zh-page ul li a{display: block;height: 100%;min-width: 10px;border-radius: 10px;padding: 0 5px;color: #fff;}
.zh-page ul .zh-cur a{background-color: #4DDDF2;color: #1c1c1c;}
.zh-page .zh-icon-prev,
.zh-page .zh-icon-next{display: inline-block;width: 0;height: 0;border-style: solid;border-width: 4px 6px;border-color: transparent #858587 transparent transparent;}
.zh-page .zh-icon-next{border-color: transparent transparent transparent #858587;}

JS:

$.extend({
    // ajax分页
    page: function(options) {
        var defaults = {
            "visiblePages": 6 // 可见页码(不能小于4)
        };
        var opts = $.extend({}, defaults, options);
        var curPage = opts.curPage;
        // 创建分页列表
        function createPageList(curPage) {
            var li = "
  • "; if(opts.totalPages <= opts.visiblePages) { // 总页数<=可见页 for(var i=1; i<=opts.totalPages; i++) { if(curPage == i) { li += "
  • "+i+"
  • "; } else { li += "
  • "+i+"
  • "; } } } else { // 总页数>可见页 if(curPage < opts.visiblePages-1) { // 当前页<可见页-1 for(var i=1; i<=opts.visiblePages-1; i++) { if(curPage == i) { li += "
  • "+i+"
  • "; } else { li += "
  • "+i+"
  • "; } } li += "
  • ...
  • "; li += "
  • "+opts.totalPages+"
  • "; } else if(curPage >= opts.visiblePages-1) { // 当前页>=可见页-1 if(opts.totalPages-curPage <= opts.visiblePages-4) { // 能连到结束 li += "
  • 1
  • "; li += "
  • ...
  • "; for(var i=opts.totalPages-(opts.visiblePages-2); i<=opts.totalPages; i++) { if(curPage == i) { li += "
  • "+i+"
  • "; } else { li += "
  • "+i+"
  • "; } } } else { // 不能连到结束 li += "
  • 1
  • "; li += "
  • ...
  • "; for(var i=curPage-(opts.visiblePages-4); i<=curPage+1; i++) { if(curPage == i) { li += "
  • "+i+"
  • "; } else { li += "
  • "+i+"
  • "; } } li += "
  • ...
  • "; li += "
  • "+opts.totalPages+"
  • "; } } } li += "
  • "; li += "
  • 共"+opts.totalPages+"页
  • "; $(opts.ele).html(li); } createPageList(curPage); // 点击页码 $(opts.ele).off("click"); $(opts.ele).on("click", "li:not(.zh-prev, .zh-next, .zh-total, .zh-ellipsis)", function() { curPage = +$(this).text(); $(this).addClass("zh-cur").siblings().removeClass("zh-cur"); createPageList(curPage); if(opts.change && typeof opts.change === "function") { opts.change.call(null, curPage); } }); // 点击前一页 $(opts.ele).on("click", ".zh-prev", function() { curPage = +$(opts.ele).children(".zh-cur").text(); curPage--; if(curPage < 1) return; createPageList(curPage); if(opts.change && typeof opts.change === "function") { opts.change.call(null, curPage); } }); // 点击后一页 $(opts.ele).on("click", ".zh-next", function() { curPage = +$(opts.ele).children(".zh-cur").text(); curPage++; if(curPage > opts.totalPages) return; createPageList(curPage); if(opts.change && typeof opts.change === "function") { opts.change.call(null, curPage); } }); } });

    调用:

    $.page({
        ele: ".zh-page ul",
        curPage: 1, // 当前页
        visiblePages: 5, // 可见页码
        change: function(num) { // 回调
            // alert(num);
        },
        totalPages: 20 // 总页数
    });

    文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

    转载请注明本文地址:https://www.ucloud.cn/yun/83482.html

    相关文章

    • 徒手撸UI之Paginator

      摘要:是一个组件库目前拥有的组件语法编写,无依赖原生模块化,以上支持,请开启静态服务器预览效果,静态服务器传送门采用变量配置样式辛苦造轮子,欢迎来仓库四月份找工作,求内推,坐标深圳写在前面去年年底项目中尝试着写过一个分页的组件,然后就有了写的想法 QingUI是一个UI组件库目前拥有的组件:DatePicker, TimePicker, Paginator, Tree, Cascader, ...

      liuhh 评论0 收藏0
    • jq easyui数据网络分页过程

      摘要:在涉及到组件的分页功能时,遇到了一点问题。由于数据较多,这边不予展示。返回的数据必须是符合要求的数据,格式如下必须带有属性,属性值为总共的数据条数,是这一页的数据内容,以数组对象的形式返回。 第一次写技术方面的文章,有点忐忑,总怕自己讲的不对误导别人。但是万事总有个开头,有不足错误之处,请各位读者老爷指出。 言归正传,最近刚进新公司,上头要求我先熟悉熟悉easyui这个组件库。在涉及到...

      Rainie 评论0 收藏0
    • jq easyui数据网络分页过程

      摘要:在涉及到组件的分页功能时,遇到了一点问题。由于数据较多,这边不予展示。返回的数据必须是符合要求的数据,格式如下必须带有属性,属性值为总共的数据条数,是这一页的数据内容,以数组对象的形式返回。 第一次写技术方面的文章,有点忐忑,总怕自己讲的不对误导别人。但是万事总有个开头,有不足错误之处,请各位读者老爷指出。 言归正传,最近刚进新公司,上头要求我先熟悉熟悉easyui这个组件库。在涉及到...

      array_huang 评论0 收藏0
    • 简单分页

      摘要:哦,我想起来了,我们忘记添加第一页跟最后一页了首先记录传入的页码数字判断所传页码之前添加的页码数判断所传页码之后添加的页码数判断页码左边是否添加上一页下一页咦,看上去好了。那我们来一个简单粗暴的吧 原文链接 编程,很重要的一个技能就是抽象能力,就是现实中的琐事,我怎么用代码来表示。 一、简单的分页需求 当前页码前后显示3页,然后需要显示第一页以及最后一页 未显示的页码用省略号...表...

      Flands 评论0 收藏0
    • Django 学习小组:博客开发实战第三周教程——文章列表分页和代码语法高亮

      摘要:本教程内容已过时,更新版教程请访问博客开发入门教程。当分页较多时,总是显示当前页及其前几页和后几页的页码教程中使用的是两页,其他页码用省略号代替。 本教程内容已过时,更新版教程请访问: django 博客开发入门教程。 摘要:前两期教程我们实现了博客的 Model 部分,以及 Blog 的首页视图 IndexView,详情页面 DetailView,以及分类页面 CategoryVi...

      Luosunce 评论0 收藏0

    发表评论

    0条评论

    Thanatos

    |高级讲师

    TA的文章

    阅读更多
    最新活动
    阅读需要支付1元查看
    <