vue一个简单的上下翻页,位于首页时上一页不可点击

7 篇文章 0 订阅

想写一个简单的上下分页效果,位于首页时上一页不可点击,位于最后一页时下一页不可点击

首先重要的是判断当前是否首页或最后一页,这里用了computed,我用的api是每次返回length为8的Array,并没有total属性,因此只能根据length是否小于8来判断是否最后一页,首页的话是有一个offset值,offset等于0即为首页。

  computed:{
    // 判断是否是最后一页
    isEndPage(){
      if(this.videoList.length<8) return true
      return false
    },
    // 判断是否是第一页
    isFirstPage(){
      if(this.videoParams.offset===0) return true
      return false
    }
  }

重要的东西有了,接下来就是css的部分了,不重要的代码我删除了,这里我写了一个常用的css类名库,可以从类名大概看出是什么样式。

这里说明一下,这里的上下页按钮用的是span,可以首页和最后一页要分别给span添加disabled类名

如果这两个样式一起用只会使用阻止事件,鼠标不会变成不可点击状态,因此只使用了cursor:not-allowed;

事件可以在@click中拦截。

.disabled{
	/* 鼠标会显示不可点 */
	cursor:not-allowed;
	/* 会阻止事件 */
	/* pointer-events: none; */  
}
<template>
  <div class="video-container">
    <div class="d-flex j-center mb-2">
      <span class="text-white py px-1 mr-2 rounded" @click="prevPage" :class="isFirstPage?'disabled sub-bg-color':'main-bg-color cur-point'">上一页</span>
      <span class="main-bg-color text-white py px-1 rounded" @click="nextPage" :class="isEndPage?'disabled sub-bg-color':'main-bg-color cur-point'">下一页</span>
    </div>
    <Loading v-if="!loading"></Loading>
  </div>
</template>
methods: {
    // 上一页
    prevPage(){
      // 如果是首页就返回
      if(this.isFirstPage) return;
      this.videoParams.offset-=1
    },
    // 下一页
    nextPage(){
      // 如果是最后一页就返回
      if(this.isEndPage) return;
      this.videoParams.offset+=1
    }
  }

修改this.videoParams的offset后重新获取数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值