vue-awesome-swiper之点击事件

当 swiper 开启 loop 属性实现循环轮播,同时用 vue 的事件绑定语法为每个轮播页绑定事件,当轮播到特定的页面时绑定的事件无法被正常监听。

原因:Swiper 是通过在实际轮播页前后复制若干个页面来实现 loop(首尾相连循环滚动)效果的,因为虽然复制了轮播页元素但 vue 所绑定的事件处理器却没有被复制。

解决方案:Swiper.js 本身提供了一套事件绑定机制,只需要把原代码里 vue 指定绑定的事件监听器通过 Swiper 初始选项中绑定就好了。调整后的代码如下:

data() {
    return {
      swiperOption: {
        loop: true, // 循环
        on: {
          click: (e) => {
            // 点击小图, 大图对应切换
            const index = this.pngListNoLabel.findIndex((i) => i.imgSrc === e.target.attributes.src.nodeValue);
            this.swiper.realIndex = index;
            this.swiper.activeIndex = index + 5;
            this.swiper.slideTo(index + 5);
            this.$emit('setBigIndex', index);
          },
        },
      },
    };
  },

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值