javascript代码实例教程-js页码生成库,一个适合前后端分离的页码生成器

发布时间:2019-01-29 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-js页码生成库,一个适合前后端分离的页码生成器脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 前言

 

上星期写的任务里面有需要进行分页的处理,gIT搜索了一番,没有觉得合适的,于是自己临时写了个分页的算法。

 

然后等闲下来的时候,决定把分页进行优化并推广。于是乎,一个适合前后端分离的页码生成器就这样出来了。

 

先别废话了,直接上 git 地址 和 demo 地址。看官果断点击进去瞧瞧看。项目主页的 readme 文档的自动排版将更好。

 

 

 

先讲讲设计思想

 

整个开发流程围绕事件绑定进行开发。

 

脱离 callback 回调这种回调方法,直接使用 事件 方式触发换页前后的动作,方便解耦。

 

既然使用这种方式进行回调,就使用全局变量挂载分页的数据,方便回调时候进行分页数据的访问。

 

 

 

库的依赖

 

由于开发库的时候,并没有使用原生的语法进行元素或者事件绑定的操作,因此需要依赖某个库。

 

阶段,经过测试支持 zepto 以及 jquery (二选一)。

 

css 方面,建议还是直接自己写或者使用 bootstrap 的库,代码里面有从 bootstrap 里面抽出来的分页 css 代码。

 

 

 

简洁demo

 

由于分页就必须知道分页数据大小,因此必须传输配置对象。

 

复制代码

VAR pageconfig = {

  // 每页显示的数据长度,必填,而且 >1

  PRePageLenght: 10,

  // 数据的总长度,必填,而且 >1

  dataLength: 30,

  // 现在的页码,默认 1

  pageNow: 1,

  // 渲染分页 htML 的容器,一般框架的容器即可

  renderBox: $('.pagination-box')

};

复制代码

配置之后,进行调用

 

 

 

// 运行即可分页

pageBuilder(pageConfig);

 

 

这样子就能进行分页了。

 

回调的书写

 

回调的书写虽然放在了调用分页的主函数后面,但是记得在调用分页之前就定义这些事件,因为一旦调用分页函数,就马上触发分页回调,写在后面了,就会忘记了刚分页时候的事件回调了。

 

首先是分页前的回调,分页之前会触发 window 下面一个自定义分页之前的事件 beforePageChange ,因此要触发处理分页前的动作,就这样处理:

 

// 提前定义好分页之前的动作,可选

$(window).on('beforePageChange', function() {

  // callback

  // todo

  // 获取当前页码,可以从 pageBuilder.page.pageNow 取得,注意此时的值为未分页之前的旧页码。

})

同样道理,分页之后的回调差不多:

 

// 提前定义好分页之后的动作,可选

$(window).on('afterPageChange', function() {

  // callback

  // todo

  // 获取当前页码,可以从 pageBuilder.page.pageNow 取得

})

特别说明

 

一个页面只适合使用一个分页实例。分页的动作将在 hashchange 触发之后进行分页。

 

里面监控页码变化的函数:

 

复制代码

    // 绑定换页的事件

    $(window).on('hashchange', function() {

      var hash = location.hash;

      var pageTemp = 0;

      if (/^#page=/d+$/.test(hash) === true) {

        // 直接是页码的

        pageTemp = hash.substring(6) | 0;

        if (defaultConfig.pageNow !== pageTemp) {

          defaultConfig.pageNow = pageTemp;

          $(window).trigger("renderPagination");

        }

 

      } else if (hash === "#page=next") {

        // 下一页的

        location.hash = "page=" + ( defaultConfig.pageNow + 1 );

      } else if (hash === "#page=prev") {

        // 上一页的

        location.hash = "page=" + ( defaultConfig.pageNow - 1 );

      }

    })

复制代码

因为 hashchange 只支持 IE8+,

 

所以,该插件只适合 IE8+,甚至IE8的怪异模式不支持 hashchange 事件

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! @L_360_0@,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-js页码生成库,一个适合前后端分离的页码生成器全部内容,希望文章能够帮你解决javascript代码实例教程-js页码生成库,一个适合前后端分离的页码生成器所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。