博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用vue写一个分页器代码
阅读量:5325 次
发布时间:2019-06-14

本文共 1838 字,大约阅读时间需要 6 分钟。

分页是项目中常会用到的,网上的插件也很多,但是有些功能太齐全反而不是必要的,所以抽时间自己写了一下(小白写代码,若发现问题还请及时赐教,感激不尽……)

如图,想要一个这样的页码:

  a. 上一页、下一页固定展示

  b. 第一页、最后一页固定展示

  c. 中间,即:左右...之间需要展示的页码个数可自定义

  d. 可任意选择页面展示数据条数

一、不需要展示 ,只展示页码,需要定义3个变量:pageNum(当前页码)、totalNum(总页码)、middleSize(中间,即左右...之间需要展示的页码 个数

  1、totalNum <= middleSize+2时,只显示1,2,3,4没有...,(为什么是totalNum <= middleSize+2,而不是totalNum <= middleSize,这是因为第一个、最后一页是固定展示的),totalNum=7,middleSize=5,展示情况如下图:

  2、pageNum <= middleSize时,右侧...显示,totalNum=8,middleSize=5,展示情况如下图:

  3、pageNum >= totalNum - ( middleSize - 1 )时,左侧...显示,totalNum=100, middleSize=5,展示情况如下图:

 

  4、除以上3种情况,左右两侧...都展示,那中间页码如何展示,代码如下:

// ④ 展示左右两侧的'...'let pages = [1, '...'];// 当左右两侧的...都展示时,中间的页码该如何展示呢?其实就是 当前页码 - (中间要展示页码的个数/2向下取整) 到 当前页码 + (中间要展示页码的个数/2向下取整)即可const half = Math.floor(this.middleSize/2); // 向下取整 for(let i=this.pageNum-half; i<=this.pageNum+half; i++) {    pages.push(i);}pages.push('...');pages.push(this.totalNum);return pages;

二、左侧页面展示条数代码实现较简单,可查看全部代码:

1 
30 31 112 113
View Code

 

注:记住一个原则就可实现分页,右点左侧页码个数 = middleSize, 左点右侧页码个数 = middleSize,totalNum<=middleSize+2无点只有页码,除以上三种情况外左右两侧...都展示

 

转载于:https://www.cnblogs.com/carriezhao/p/11102518.html

你可能感兴趣的文章
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>