swiperOption: { // swiper相关配置
pagination: {
el: '.swiper-pagination' // 几个小点分页器
},
paginationClickable: true,
autoplay: 1500,
cancelable: false,
autoplayDisableOnInteraction: false,
loop: false,
autoHeight: true,
touchMoveStopPropagation: true, // 阻止touchMove冒泡事件
allowSlideNext: false, // 禁止用户向右或向上滑动
coverflow: {
rotate: 30,
stretch: 10,
depth: 60,
modifier: 2,
slideShadows: true
},
on: {
// swiper内置方法,当每一页发生移动时触发验证方法
sliderMove: () => {
// 箭头函数里获取到swiper的实例,this->Swiper
let swiper = this.$refs.mySwiper.swiper
let i = swiper.activeIndex // 变量名i存取swiper的每一页索引
if (i === 0) {
//下面是element 提供的表单验证
this.$refs['form'].validate((valid) => {
if (valid) {
swiper.allowSlideNext = true
} else {
swiper.allowSlideNext = false
console.log('未填写完表单')
}
})
} else if (i === 1) {
this.$refs['formList'].validate((valid) => {
if (valid) {
swiper.allowSlideNext = true
} else {
swiper.allowSlideNext = false
console.log('未输入完表单')
}
})
} else if (i === 2) {
this.$refs['formScend'].validate((valid) => {
if (valid) {
swiper.allowSlideNext = true
} else {
swiper.allowSlideNext = false
console.log('未输入完表单')
}
})
} else if (i === 3) {
this.$refs['formTrist'].validate((valid) => {
if (valid) {
swiper.allowSlideNext = true
} else {
swiper.allowSlideNext = false
console.log('未输入完表单')
}
})
} else if (i === 4) {
this.$refs['formFive'].validate((valid) => {
if (valid) {
swiper.allowSlideNext = true
} else {
swiper.allowSlideNext = false
console.log('未输入完表单')
}
})
} else if (i === 5) {
this.$refs['formSix'].validate((valid) => {
if (valid) {
swiper.allowSlideNext = true
} else {
swiper.allowSlideNext = false
console.log('未输入完表单')
}
})
}
}
}
},
复制代码
swiper相关配置在vue data里,想用swiper内置的方法,就得首先改变this指向,让指向Swiper实例,this---Swipervue
let swiper = this.$refs.mySwiper.swiper ,报错mySwiper找不到,想要找到前提是得在swiper结构上加上ref="mySwiper",告诉mySwiper是谁bash
<swiper :options="swiperOption" ref="mySwiper">
..... //
</swiper>
复制代码
若是你以为对你有帮助,烦请点个赞呗👍ide