千家信息网

基于原生JS怎么实现分页效果

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍"基于原生JS怎么实现分页效果"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"基于原生JS怎么实现分页效果"文章能帮助大家解决问题。实现之后的效
千家信息网最后更新 2025年11月08日基于原生JS怎么实现分页效果

这篇文章主要介绍"基于原生JS怎么实现分页效果"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"基于原生JS怎么实现分页效果"文章能帮助大家解决问题。

实现之后的效果

首先需要初始化该对象的一些基本属性,显示总页码数,中间显示的页面数, 添加一个回调函数,在页面变化激活回调函数并返回当前页面和一些需要的其他参数 init为对象初始化的方法(里面的参数都是可以写成活的,我这里偷懒了所以写成死的了) 这个里的 z_page 可以接是接口返回的总页数

 function Page(obj) {     this.obj = obj||{page:1,page_count: 0};     this.z_page = 7;    // 一共显示的页码数     this.show_page = this.z_page-2; // 中间显示多少个页码  必须是个基数好看     this.fn = this.obj.block;     this.init() }

在init在初始化方法里主要是判断

1 总页数是否小于显示页面(这个主要是判断是否显示省略号,添加省略号比较麻烦,这个是总页数少不用添加)

2 当前页面数+左右显示的平均数(show_page/2-1)+1和总页面相比 这个主要判断省略号在前面的问题(靠近尾页)前面有省略号

3 左右显示的平均数(show_page/2-1)+2(最前面1 和最后的书)大于当前页面数(靠近首页)

第一个图片(后面有省略号)

4 剩下的状态就是中间状态(两侧有省略号)

这个判断其实也是要判断咱们分页的边界条件,如果这个想好了并且实现了 相当于就完成了一半 初始化方法的最后是要给上一页和下一页,有数字的页签 添加点击事件 并且做相应逻辑处理 代码的实现

Page.prototype.create = function () {     // page:1 page_count 17     // 保证被点击的页数在中间     var ping = (this.show_page-1)/2; // 左右显示的平均数  在中间     var num = this.obj.page-ping; // 最小页码     var endnum =  (this.obj.page+ping)>this.obj.page_count?this.obj.page_count:(this.obj.page+ping) // 最大页码     console.log(endnum);     var pageID = document.getElementById('pageID');     var self= this;     pageID[xss_clean] = '';     num = num<1?1:num;     if (this.obj.page_count<= this.z_page) {         alert('smallPage');         this.smallPage()     } else if( (this.obj.page+ping+1)>=this.obj.page_count) {// 还要加上最后一个   接近尾页         pageID.appendChild(this.nearBack())         console.log('尾巴')     } else if ((ping+2)>=(this.obj.page)) {  //3   接近首页         pageID.appendChild( this.nearHome())         console.log('临近首页')     }else {         console.log(num,endnum);         pageID.appendChild(this.centerPage(num,endnum));     }     _document.onclick = function (event) {         switch (event.target.className) {             case 'previous':                 self._previous();                 break;             case 'next':                 self._next();                 break;             default:                 self.clickLi(event.target);         }         self.fn(self.obj.page)     } };

剩下的就是只想逻辑和dom操作了 因为是用的原生js,这里是用的文档碎片,把我生成的dom全部都放到文档碎片里,然后一次性返出来 直接append到body上 这个是我的方法代码

 Page.prototype.nearBack = function () {     var oFragmeng = document.createDocumentFragment(); // 创建了一个文档碎片     var ul = document.createElement('ul')     var Div = oFragmeng.appendChild(ul);      Div[xss_clean] = '
  • 1
  • ....
  • '; for (var m=(this.obj.page_count- this.show_page);m<=this.obj.page_count;m++) { var li1 = document.createElement('li'); li1[xss_clean] = m; if (m===this.obj.page) { li1.className = 'active' } Div.appendChild(li1) } return oFragmeng.firstChild; };

    关于"基于原生JS怎么实现分页效果"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

    页面 省略号 方法 页码 效果 页数 平均数 文档 知识 碎片 首页 代码 函数 参数 对象 就是 状态 行业 逻辑 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界牛奶解说服务器 福州橄榄枝网络技术有限公司 南京数据库工程师待遇 潍柴软件开发专业不对口 不属于数据库的范式 政策 方向 网络安全 深圳安卓电子书包软件开发公司 网络安全宣传日主题活动总结 数据库设计意图怎么写 5g车联网的数据库处理 iphone系统域名服务器配置 计算机网络技术书籍索取号 软件开发行业怎么捞金 苹果手机被锁保留数据库 神泣单机游戏服务器接接失败 自主软件开发实施条件 网络安全行书写法 吴江网络技术支持费用 闽南科技学院互联网 服务器电源产品规格书 你为什么喜欢计算机网络技术 静安区参考数据库销售厂家价格 win7进入网络安全模式卡了 网络贷款软件开发 深圳安卓电子书包软件开发公司 河北pdu服务器电源生产公司 服务器远程连接密码破解工具 链接蒸汽平台服务器失败 怎么从数据库中获取数据 软件开发各阶段的继承方法
    0