仿淘宝轮播图滑动查看更多

uniapp 用swiper轮播图组件,当滑到最后一张,还右滑的操作,

需求是:滑到最后一张继续右滑,就跳转页面

<template>
  <view class="uni-margin-wrap">
    <swiper class="swiper" @animationfinish="handleAnimationFinish" @transition="handleTransition" indicator-dots indicator-color='#fff'
      :autoplay="false" :interval="2000" :duration="500">
      <swiper-item class="swiper-item" v-for="item in 3" :key="item">
        <image src="../../static/1.gif"></image>
      </swiper-item>
    </swiper>
  </view>
</template>
<script>
  export default {
    data() {
      return {
        currentIndex: 0, // 当前swiper的索引
        swiperElement: null, // 缓存swiper DOM元素
        swiperWidth: 0, // 缓存swiper的宽度
        threshold: 0, // 滑动阈值,滑动达到这个阈值时触发导航
      };
    },
    mounted() {
      // 获取swiper元素和宽度,并缓存它们
      this.swiperElement = document.querySelector('.swiper');
      this.swiperWidth = this.swiperElement.clientWidth;
      // 设置滑动的阈值为上面元素的四分之一
      this.threshold = this.swiperWidth / 4;
    },
    methods: {
      // 处理swiper滑动过渡事件
      handleTransition(e) {
        //2代表下标改为轮播图数组长度-1拿最后一个下标
        if (this.swiperElement && this.currentIndex === 2) {
          // 如果当前swiper索引为最后一个,即判断滑动距离是否达到阈值
          if (e.detail.dx >= this.threshold) {
            // 检查滑动距离是否达到阈值
            uni.navigateTo({
              url: `/pages/home/home`
            });
          }
        }
      },
      // 处理swiper动画完成事件
      handleAnimationFinish(e) {
        this.currentIndex = e.detail.current;
      },
    }
  };
</script>
<style>
  .swiper {
    height: 400rpx;
  }

  .swiper-item {
    width: 100%;
  }

  .swiper-item image {
    width: 100%;
  }
</style>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值