swiper 图片做轮播并点击跳转 跳转路径出错

环境:nuxt项目,语法:vue
首先去官网拿简单轮播图例子

var mySwiper = new Swiper('.swiper-container', {
	autoplay: true,//可选选项,自动滑动
})

把它放在init()方法里,然后放在mounted()里。
对轮播图片做一个v-for,再@click=check(path),把路径传给方法,方法里做router.push

!!!重点来了,本地开发是可以进行正常点击跳转的,一打包变成html就不行
排除了图片加载过久等等问题,发现是图片没跟画面保持一致,或者是因为有过渡效果,当点击的时候传的是另一个图片的url,所以跳转与目标不符

swiper里初始化的时候有自带的on

var mySwiper = new Swiper('.swiper-container', {
  on: {
    slideChange: function () {
      console.log(this.activeIndex);
    },
   click:function(){
        alert(this.clickedIndex);
      }
  },
};

这个this.activeIndex是swiper自带的,click会弹出当前slide的索引。
但是,如果想要里面通过点击进行路由跳转 是不行的,不能识别this.router。因为this域不同
(可以先赋值vue实例的this给self,在swiper 的on—click(){self.$router.push(数组【this.activeIndex】)})

因为我打包成了html之后,点击事件会时不时失效,所以就还是沿用@click方法进行点击跳转
但由于初始定义swiper为var。在别的方法用不了,改用绑定为vue的data里
这样 如果想要进行鼠标移入移出或者自动滑动可能就要更改原先写法了。
同样是this域不同的问题

在swiper方法里,this是固定指向swiper的域,如果引用vue data的this是失效的。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值