//page(JSON对象);所有属性见代码中ops
define(function (require, exports, module) {    module.exports= function(os){//可用配置属性var ops = {total:0 //记录数, page:0 //当前页, count:0 //或当前记录数, side:5 //当前页左右数字页个数, per:5 //每页条数//模板的值非''才显示,占位符有{=page},{=maxPage},{=total},{=currentPage}, firstTPL:'<a href="?{=page}">首页</a>' //首页模板, lastTPL:'<a href="?{=page}">末页</a>' //末页模板, prevTPL:'<a href="?{=page}">上页</a>' //上页模板, nextTPL:'<a href="?{=page}">下页</a>' //下页模板, prevSideTPL:'<a href="?{=page}"><<</a>' //前组模板(快退), nextSideTPL:'<a href="?{=page}">>></a>' //后组模板(快进), numberTPL:'<a href="?{=page}">{=page}</a>' //页码形式模板, pageTPL:'<a href="#{=page}">{=page}</a>' //当前页码模板, jumpTPL:'' //跳转form}; for (var o in ops)o in os && (ops[o]=os[o]);   function parseTPL(tpl,json) {if (!tpl)return '';json.maxPage = ops.maxp;json.total = ops.total;json.currentPage = ops.page;return String(tpl).replace(/\{\=(\w+)\}/g,function($0,$1){return json[$1]||'';});}var pages = '';(!+ops.per || ops.per < 1) && (ops.per = 5);if (!+ops.total || ops.total <= ops.per )return pages;//只有一页ops.maxp = Math.ceil(ops.total/ops.per);//最大页  //得到当前页码与偏移if (ops.count > 0) {//使用条数方式ops.count > ops.total && (ops.count = ops.total);   ops.page = Math.ceil(ops.count/ops.per);//数据位移转换成页,余+1} else if (ops.page > 1){//页码式ops.page > ops.maxp && (ops.page = ops.maxp);ops.count = ops.page*ops.per;} else {ops.count = 0;ops.page = 1;}ops.nums = ops.side*2+1;//总数字页为*2+1        console.log(ops);//首页/上页,左边页面码,page>side出现if (ops.page > ops.side+1)pages += parseTPL(ops.firstTPL,{page:1})+ parseTPL(ops.prevTPL,{page:ops.page-1});//快退:var prevp = ops.page - ops.nums;if (prevp > 1 )pages += parseTPL(ops.prevSideTPL,{page:prevp});//中间左边/右边的页码for  (var fi = ops.side, sidel=sider='',pl=pr=ops.page;fi >0; fi--) {   //左边页面码if (--pl >= 1)sidel = parseTPL(ops.numberTPL,{page:pl}) + sidel;   //右边页码if (++pr <= ops.maxp)sider += parseTPL(ops.numberTPL,{page:pr});          }pages += sidel + parseTPL(ops.pageTPL,{page:ops.page})+ sider;//快进按钮var nextp = ops.page + ops.nums;if (ops.maxp > nextp )pages += parseTPL(ops.nextSideTPL,nextp);   //最后的按钮if (ops.maxp- ops.page > ops.side)pages += parseTPL(ops.nextTPL,{page:ops.page+1})           +parseTPL(ops.lastTPL,{page:ops.maxp});//跳转if (ops.page > ops.side || ops.maxp-ops.page >ops.side)pages += parseTPL(ops.jumpTPL,{page:ops.page});return pages;}
});

使用方法

seajs见seajs.org

或者改写成普通的插件

seajs.use('chrd/page/1.0/page.js#?kdkddddddgdkk',function(p){page = p({total:1000,page:25});console.log(page);})
Object {total: 1000, page: 25, count: 125, side: 5, per: 5…}

page.js:55

<a href="?1">首页</a><a href="?24">上页</a><a href="?14">&lt;&lt;</a><a href="?20">20</a><a href="?21">21</a><a href="?22">22</a><a href="?23">23</a><a href="?24">24</a><a href="#25">25</a><a href="?26">26</a><a href="?27">27</a><a href="?28">28</a><a href="?29">29</a><a href="?30">30</a><a href="?">&gt;&gt;</a><a href="?26">下页</a><a href="?200">末页</a>

js分页插件:首页,上页,快退,页码,快进,下页末页,跳转,使用模板,灵活自由相关推荐

  1. js 分页插件(jQuery)

    参考:http://www.jb51.net/article/117191.htm 侵删 css 部分 @charset "utf=8"; *{box-sizing: border ...

  2. 分页请求时,有新数据加入时,下一页会出现重复数据问题

    公司业务发展迅速,用户量急剧上升中,偶尔会发现这么一个问题,就是下一页的数据中总会出现上一页的几条数据.具体表现就是 注意4号和5号 第一页和第二页都出现的了这两人 为什么会造成这个问题呢?用户在查询 ...

  3. html超出高度自动下一页,上滑web页面自动加载下一页

    移动端常常是通过向上滑动到页面底部自动加载下一页内容,而不是点击"下一页"按钮进行加载.这是一个演示了自动加载下一页的小demo. html: html> 向上滑动自动加载后 ...

  4. WORD中如何设置前几页不显示页码,同时更改总页数

    word文档在同一文件中插入页码时,总是从第一页到末页顺序编码,但我这一文件从第1-4页为"提纲"或者"前言",不需编页码,从第5页开始才是正文,那么怎样才能使 ...

  5. python跳转下一页_Python网页浏览转到下一页

    代码只是反复打印相同的电子邮件地址,而不会转到下一页.有人看到我代码中的错误吗?import requests from bs4 import BeautifulSoup as soup def ge ...

  6. Microsoft Word的第二页开始加页码脚标,总页数减一

    文章目录 问题 解决 参考 问题 如何从Microsoft Word的第二页开始加页码脚标,Page x of y,这里y是总页数减一. 解决 首先把文档分成两段,设置Section Break,第一 ...

  7. Word第1、2页不显示页码,从第3页开始显示页码

    在要编辑的word里头,把光标移到第3页,在"页面布局"下有个"分隔符"菜单,点开该菜单,在"分节符"里头选定"下一页" ...

  8. python模拟点击下一页_爬虫模拟点击下一页selenium

    爬虫实现翻页功能 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from ...

  9. python爬虫获取下一页_Python Scrapy 自动抓取下一页内容

    最近在学下Scrapy,抓取下一页的时候遇到了问题 import scrapy from crawlAll.items import CrawlallItem class ToutiaoEssayJo ...

  10. android 列表视频播放器,Android------视频播放器(包含全屏播放,快退,快进,腾讯新闻的列表播放等)...

    前段时间做了一个新闻APP,涉及到了列表视频播放,和腾讯新闻APP差不多,总结了一下代码,写了一个Demo来分享给大家. 用了  TabLayout+RecylerView+自定义视频控件完成的 列表 ...

最新文章

  1. poj 1925(坐标上的dp)
  2. 使用免费的云服务 AWS EC2
  3. DNN 4.x CodeSmith模板
  4. 在IDEA连接MySql数据库时报错: [08001] CLIENT_PLUGIN_AUTH is required com.mysql.cj.exceptions.
  5. stl取出字符串中的字符_在C ++ STL中使用比较运算符比较两个字符串
  6. 1.4编程基础之逻辑表达式与条件分支 09判断能否被3,5,7整除(2021.12.05)
  7. Idea中的maven灰色
  8. 一个简单的问题,为什么我要搞得复杂绕一大圈
  9. plsql连接mysql教程_PLSQL Developer连接oracle数据库配置教程
  10. xp oracle10闪退,cad2010win10闪退怎么办_win10cad2010打开就闪退的解决方法
  11. notebook pip install 只有星号_只有300人的”乡镇企业“:1件卖8亿垄断全球,帮三星称王,比光刻机还重要...
  12. 三步为你的 Mac 设置黑客帝国矩阵屏保
  13. 计算机基础应用期中试卷,计算机应用基础期中考试计算机试卷.doc
  14. PMP第七章:项目成本管理
  15. EChar中的柱状图如何设置柱子的最大宽度和刻度的最小间隔
  16. 聊聊Elasticsearch的NodesSniffer
  17. 强大的Excel 的 VBA
  18. 转行自学软件测试没后悔,我的经历证明,改变永远没有错
  19. Linux服务器安装kangle面板做虚拟主机分销
  20. 「第五篇」FUZZ模糊测试

热门文章

  1. 软件测试基础理论选择题(含答案)
  2. 天呢,小学生都在B站讲算法?
  3. 使用DirectX播放音频数据流
  4. Robots协议(摘)
  5. 大学计算机第一学期期末考试试题,《大学计算机基础》期末考试试题(A卷)..doc...
  6. android 开源fc模拟器_用 Go 撸了一个 NES/FC/红白机模拟器——GoNES
  7. 安居客头部买房部分书写
  8. 网吧技术员应聘问卷你能答多少
  9. Android基础入门教程——10.3 AudioManager(音频管理器)
  10. 2013八大免费杀毒软件排行榜