<div class="pagination"></div>
(function($) {$.fn.pagination = function(options) {const defaults = {current: 1, // 当前页码total: 10, // 总页数visiblePages: 5, // 可见页码数量onPageClick: function(page) {} // 点击页码的回调函数};const settings = $.extend({}, defaults, options);const $pagination = this;const halfVisible = Math.floor(settings.visiblePages / 2);let start = Math.max(1, settings.current - halfVisible);let end = Math.min(settings.total, start + settings.visiblePages - 1);start = Math.max(1, end - settings.visiblePages + 1);const pages = [];for (let i = start; i <= end; i++) {pages.push(i);}const prevClass = settings.current === 1 ? 'disabled' : '';const nextClass = settings.current === settings.total ? 'disabled' : '';const html = `<ul class="pagination"><li class="page-item ${prevClass}"><a class="page-link" href="#" data-page="${settings.current - 1}">上一页</a></li>${pages.map(function(page) {const activeClass = page === settings.current ? 'active' : '';return `<li class="page-item ${activeClass}"><a class="page-link" href="#" data-page="${page}">${page}</a></li>`;}).join('')}<li class="page-item ${nextClass}"><a class="page-link" href="#" data-page="${settings.current + 1}">下一页</a></li></ul>`;$pagination.html(html);$pagination.on('click', 'a', function(event) {event.preventDefault();const page = parseInt($(this).data('page'));if (page >= 1 && page <= settings.total && page !== settings.current) {settings.current = page;$pagination.pagination(settings);settings.onPageClick(page);}});return $pagination;};
})(jQuery);

该代码通过 jQuery 的插件机制,将翻页器封装为一个 jQuery 插件。该插件接收一个对象作为参数,用于配置翻页器的各种属性,包括当前页码、总页数、可见页码数量和点击页码的回调函数。在插件内部,首先通过 Math.max 和 Math.min 方法计算出可见的页码范围,然后使用 map 方法将页码转换为 HTML。最后,将 HTML 插入到翻页器容器中,并使用事件委托为页码绑定点击事件。当点击页码时,插件会更新当前页码,重新绘制翻页器,并调用回调函数通知外部代码页码已经变化。

使用jQuery封装翻页器相关推荐

  1. 15个最佳jQuery的翻页书效果的例子

    在这里,你会发现15的jQuery的翻页书的插件,提供了良好的页面翻转的经验,并帮助创建类似书本的效果. jQuery的增添了一道亮丽的过渡到实际的页面在一本书或杂志HTML5. 1. BookBlo ...

  2. 基于ESP32的蓝牙翻页器设计(论文附调试成功代码!!)

    基于ESP32的蓝牙翻页器设计 目录 基于ESP32的蓝牙翻页器设计 1 摘要 1 1.绪论 2 1.1认识蓝牙 2 1.2研究思路 3 2.软硬件设计 3 2.1中央处理模块------ESP32 ...

  3. 2012-01-10 自己写的基于jquery的翻页效果

    是不是啊~~这么一转眼,四个月就没了~~~身为码农的我.哎..  加油吧... 正文:     一个好看的用jquery做的打招呼  (第一次自己写啊,里面的翻页效果,初级初级~~呵呵) 首页 这个设 ...

  4. react封装翻页插件

    插件演示 今天用react封装一个翻页插件,先给大家看一下效果: 翻页插件上面的文字是从后台获取的. 插件说明 这个插件有五部分组成:首页.上一页.中间显示数字.下一页.尾页.具体的功能是:如果当前页 ...

  5. elementUI 写一个表头列名、表体单元格样式、翻页器相对较为动态的表格el-table

    <template><!-- 表格---------------------------------------- --><div class="table&q ...

  6. element ui 上一页下一页_vue翻页器,包括上一页,下一页,跳转

    翻页组件 -- 子组件 上一页 {{i}} {{i}} {{i}} - - - - 下一页 跳转到: GO export default { model: { // 通过v-model传过来的参数 p ...

  7. Vue 实现翻页器 下一页 处理显示多页面要下一页非表格

    vue里面因为数据太多要弄多个页面,路由又不行,element ui的分页器用不了 我的环境是electron-vue,和vue通用的可以无视,这里采用了element ui 的走马灯当做容器翻页 首 ...

  8. avue中crud翻页器currentPage等修改数据,页面不同步问题

    <avue-crud :option="option" ref="crud" //表格常用事件 @on-load="getList"/ ...

  9. jQuery翻页yunm.pager.js,涉及div局部刷新

    前端的翻页插件有很多,bootstrap的翻页界面看起来就不错,做起来也易于上手,但应用于项目中的翻页实现还有有几个难点,分别是: 如何封装一个翻页插件,如题中的yunm.pager.js. 涉及到的 ...

最新文章

  1. tts和字符集的关系--要求源和目的端的数据库字符集必须一样,国家字符集必须一样。...
  2. Effective STL中文版pdf
  3. 怎么修改图例位置_学到了学到了,叠加图,原来可以这样处理图例
  4. 免授权版傻瓜式建站系统
  5. 【征稿+竞赛】WACV 2021 第一届无人车视觉学术研讨会
  6. 怎么判断tcp重组完成_网络工程师(8):TCP为什么可靠
  7. 将centos字符编码换成utf-8
  8. ueditor去掉本地保存功能
  9. 如何使用powerdesigner导出sql脚本
  10. unix系统中的挂载(mount)
  11. 自己动手写操作系统(高清图书+源代码)分享
  12. 北航计算机组成原理课程设计-2020秋 PreProject-Logisim-斐波那契数列问题(简单迭代法+矩阵乘法的快速幂)
  13. SQL注入SQLmap简单用法,和SQL注入写入一句话木马
  14. 天文相关词汇的英语翻译
  15. [大学物理实验-4]弦上驻波实验
  16. PE安装Win8纯净版教程【附Win864/32位系统下载地址以及系统激活工具和解压软件安装包】
  17. android pie_Android Pie中的新安全功能,以及为什么对它们感到兴奋
  18. 网格交易 python代码_网格交易原理和代码
  19. 《C语言深度剖析》学习笔记----C语言中的符号
  20. 高德地图-初始化的时候获取行政区边界和中心点

热门文章

  1. rpm 安装 忽略依赖_rpm卸载软件忽略循环依赖
  2. VS2019项目打包exe文件教程
  3. android 文件系统类型的介绍
  4. 菜鸟智慧系统(线性表)
  5. javaScript系列笔记 - JS生成倒计时
  6. 进入AI领域做产品 —— 我的自学之路(CV-人脸识别)
  7. 【js】a标签点击下载
  8. 从游戏语音到视频社交,一文详解2017实时互联网最热技术
  9. java高校学生档案系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  10. 统一社会信用代码测试_统一的测试运行器和测试分析