vue手搓分页实现‘...‘功能。

前言

大家好,我是尤雨海。。。

一、分页中常见的省略号出现的三种情况。

第一种

在这里插入图片描述

第二种

在这里插入图片描述

第三种

在这里插入图片描述

二、代码解析

逻辑分析:

//这里使用计算属性,因为它有缓存。
  computed: {
    pagesum()//总页数 {  
      let pagesum = Math.ceil(this.totle / this.pagesize); //总页数随着每页显示数量的改变而改变
      let pageNow = this.pageNow;  //当前的页数
      if (pagesum <= 5) {   //如果总页数小于5,直接返回。
        return pagesum;
      } else {  
      //如果总页数大于5,并且当前页数小于等于4,返回第一种情况的数组,省略号在后面。
        if (pageNow <= 4) {
          return [1, 2, 3, 4, 5, "...", pagesum];  
        } else if (pageNow >= pagesum - 4) {  //如果当前页数大于等于总页数减4,返回第三种情况的数组,也就是省略号在前面
          return [
            1,
            "...",
            pagesum - 5,
            pagesum - 4,
            pagesum - 3,
            pagesum - 2,
            pagesum - 1,
            pagesum,
          ];
        } else {
        //否则的话,就返回第二种情况,前后都有省略号。
          return [1, "...", pageNow - 1, pageNow, pageNow + 1, "...", pagesum];
        }
      }
    },
  },

页面上展示:

 <span
        v-for="(item, index) in pagesum"
        :key="index"
        >{{ item }}
 </span>
    //点击分页的时候,遇到...阻止向下进行。
    changepageNow(i) {
      if (i == "...") {
        return;
      }
      this.pageNow = i;
      this.$emit("changepageNow", i);
    },

效果:

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值