vue中使用vue-awesome-swiper遇到的一些问题
@import"~@/assets/scss/home.scss";最近开发PC官网,使用轮播图,这里介绍一下使用过程中遇到的问题。之前用jquery开发项目的时候用的是swiper3。现在我用vue开发。一开始我尝试使用最新的swiper6。复制了官网demo的代码,发现不是下标点失效,就是切换功能失效。我不知道问题出在哪里。.折腾了半天,终于用上了swiper3的方法。轮播引入的版本是"vue-awesome-swiper":"^2.6.7",main.js说importVueAwesomeSwiperfrom'vue-awesome-swiper'//requirestylesimport'swiper/dist/css/swiper.css'Vue.use(VueAwesomeSwiper,/*{默认全局选项}*/)HTML内容:1">
数据中的配置:swiperOption:{//参数选项,显示小圆点pagination:".swiper-pagination",paginationClickable:true,//looploop:true,//每次播放时间为3秒,autoplay:2000,//用户操作后swiper,是否关闭自动播放autoplayDisableOnInteraction:false,//滑动速度speed:1000,//delay:1000prevButton:".swiper-button-prev",nextButton:".swiper-button-next",observer:true,//修改swiper自身或子元素时,自动初始化swiper//this.realIndex+1//console.log(swiper.realIndex);},},computed中的配置(我写的代码也参考了很多其他前辈的代码,觉得写的不错)computed:{swiper(){returnthis.$refs.mySwiper.swiper;}},然后可以使用下面的,因为我的轮播图片是ajax请求返回的,所以需要在轮播容器上写一个判断,否则会出现页面加载完成轮广播会滚动到最后一个bug那么我这边还有一个要求。只有当图片大于一张时才会自动旋转,所以需要添加代码:inmounted:Home().then((response)=>{console.log(response.data,"Home");if(response.data.ReturnCode==0){if(response.data.Data){vardata=response.data.Data;this.ListBanner=data[0].ListBanner;//this.ListNews=data[0].ListNews;this.ListPhysician=data[0].ListPhysician;this.$nextTick(()=>{if(this.ListBanner.length<=1){this.swiper.stopAutoplay();this.swiper.lockSwipes();}if(this.ListPhysician.length<=1){this.swiper3.stopAutoplay();this.swiper3.lockSwipes();}this.wowFun();});//console.log(this.ListNews);//newWOW().init();}}});判断必须放在this.$nextTick中才能生效。this.swiper.stopAutoplay();是停止自动轮播this.swiper.lockSwipes();是为了禁止滑动不显示小圆点和左右切换,加上v-if="ListBanner.length>1"。如果想实现时间控制的轮播轮播,如图:swiperOption:{//参数选项,显示小圆点pagination:".swiper-pagination",paginationClickable:true,//looploop:true,//each播放时间为3秒,autoplay:2000,//用户操作滑动器后是否关闭自动播放autoplayDisableOnInteraction:false,//滑动速度speed:1000,//delay:1000prevButton:".swiper-button-prev",nextButton:".swiper-button-next",onSlideChangeStart:function(swiper){that.active=swiper.realIndex;//this.realIndex+1//console.log(swiper.realIndex);},},事件写在OnSlideChangeStart控制轮播的滚动,写在:methods中(didi是我随便取的名字,是点击时间日期的事件):didi(index){this.活动=索引;this.swiper.slideTo(index+1,1000,false);},这是我在首页配置轮播图的所有代码(一些不相关的已经删除):
1">