前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue分页组件动态页码_怎样分页设置页码

vue分页组件动态页码_怎样分页设置页码

作者头像
全栈程序员站长
发布2022-09-30 11:34:14
2K0
发布2022-09-30 11:34:14
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

效果如下:

HTML:

代码语言:javascript
复制
<ul class="page f16 tc mt30">
<li>
<span v-if="page > 1"><b @click="page--,pageClick()">上一页</b></span>
<span v-if="page == 1">上一页</span>
<span v-for="index in pagesAll" :key="index" :class="{'active':page == index}" @click="goPage(index)">{
  
  {index}}</span>
<span v-if="page!=pageAll"><b @click="page++,pageClick()">下一页</b></span>
<span v-if="page == pageAll">下一页</span>
</li>
<li>共{
  
  {pageAll}}页</li>
<li>到<input type="text" class="int02" v-model="jumpPage"> 页<input type="button" class="bt03" value="确定" @click="goPage(jumpPage)"></li>
</ul>

CSS:

代码语言:javascript
复制
.page li{display:inline-block;margin:0 5px;}
.page li span{display:inline-block;padding:5px 10px;border:1px solid #dfdfdf;margin:0 5px;border-radius:5px;cursor:pointer;}
.page li span.active,.page li span:hover{border:1px solid #316dd9;background:#316dd9;color:#fff;}
.page b{display:block;font-weight:normal;}
.page .int02,.page .bt03{line-height:32px;border:1px solid #ccc;vertical-align:middle;margin:0 10px;border-radius:5px;}
.page .int02{width:40px;text-align:center;}
.page .bt03{background:#316dd9;color:#fff;border:none;padding:0 30px;line-height:36px;margin-left:20px;}

JS:

代码语言:javascript
复制
data(){
return{
listData:"",//旅行社列表数据搜索结果数据
// pageSize:15, //每页个数,后台默认15
page:1,//当前页码,不传默认第一页
pageAll:"", //数据总页数
jumpPage:"",//跳转页码
}
},
methods:{
//获取旅行社列表数据 keywords words搜索关键字,region_id id区域id,page onPage当前页码
getTravel(event){
....数据列表获取.....
if (response.data.status==1) {
console.log(response.data.data);
this.pageAll = response.data.data.count;
this.listData = response.data.data.data;
}else{
console.log(response.data.info);
}
....数据列表获取.....
},
//点击上一页下一页
pageClick(){       
this.getTravel(this.page); //获取列表数据 
window.scrollTo(0,500); //页面滚动到顶部
},
//点击页码或跳转指定页码
goPage(event){
if(event != this.page && event != ""){
this.page = event
this.getTravel(this.page); //获取列表数据
window.scrollTo(0,500); //页面滚动到顶部
}
},
},
computed: {
pagesAll(){
// 开始数字
var leftNum = 1;
// 结束数字
var rightNum = this.pageAll;
// 存储页码数组
var pageArray = [];
// 显示页码的数量 最好是个单数
var showNum = 5;
// 因为是单数向上取整获取到中间的数字
var centerNum = Math.ceil(showNum/2);
// 判断分析当总页数超过showNum展示页数时,需要判断分页情况
//1、在最左边第一个或者在centerNum的前面
//2、在中间
//3、最右边最后一个
if(this.pageAll >= showNum){	
// 中间centerNum时左右都加上(centerNum-1)
if(this.page > centerNum && this.page < this.pageAll - (centerNum - 1)){
//一定要用Number格式化一下获取的数据,防止获取的是字符串而不是数字
leftNum = Number(this.page) - (centerNum - 1)
rightNum = Number(this.page) + (centerNum - 1)
}else{
//最左边或者在showNum的中间
if(this.page <= centerNum){
leftNum = 1
rightNum = showNum
// 最右边时结束是总条数,开始是showNum减去1
}else{
rightNum = this.pageAll
leftNum = this.pageAll - (showNum - 1)
}
}
}
while (leftNum <= rightNum){
pageArray.push(leftNum)
leftNum ++
}
return pageArray
}
} 

划重点:

获取过来的页码数据一定要用Number()格式化一下!防止获取的是字符串而不是数字!T_T

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194127.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月13日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果如下:
  • HTML:
  • CSS:
  • JS:
  • 划重点:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档