解決使用vue-awesome-swiper組件手動(dòng)滾動(dòng)點(diǎn)擊失效問(wèn)題
問(wèn)題
最近做了一個(gè)項(xiàng)目用了vue-awesome-swiper這個(gè)組件,遇到了一個(gè)問(wèn)題。
就是vue引入swiper后,使用loop循環(huán),然后給每個(gè)swiper-slide滑塊綁定事件@click='fn()' ,由于是循環(huán)模式,swiper會(huì)復(fù)制兩份swiper-slide滑塊做循環(huán)的效果,但是這兩份復(fù)制的滑塊點(diǎn)擊效果無(wú)效,其它的正常。
廢話不多說(shuō) 上代碼
問(wèn)題代碼

這是把點(diǎn)擊事件綁定在dom上
在 loop 開(kāi)啟的時(shí)候,dom 綁定事件是有問(wèn)題的。因?yàn)樵趌oop模式下slides前后會(huì)復(fù)制若干個(gè)slide,從而形成一個(gè)環(huán)路,但是卻不會(huì)復(fù)制綁定在dom上的click事件。
因此只能使用 swiper 提供的 api 方法進(jìn)行解決
解決方案
html

js
<script>
import {
swiper,
swiperSlide
} from "vue-awesome-swiper";
var vm = null;
export default {
data() {
return {
swiperOption: {
notNextTick: true,
//循環(huán)
loop: true,
//設(shè)定初始化時(shí)slide的索引
initialSlide: 0,
//自動(dòng)播放
autoplay: true,
autoplay: {
delay: 3000,
stopOnLastSlide: false,
disableOnInteraction: false,
},
// 設(shè)置輪播
effect: '',
//滑動(dòng)速度
speed: 800,
//滑動(dòng)方向
direction: 'horizontal',
//小手掌抓取滑動(dòng)
// grabCursor : true,
//滑動(dòng)之后回調(diào)函數(shù)
on: {
slideChangeTransitionEnd: function() {
console.log(this.activeIndex);
//切換結(jié)束時(shí),告訴我現(xiàn)在是第幾個(gè)slide
// const realIndex = this.activeIndex;
// vm.carousel(realIndex);
},
click: function() {
// 這里有坑,需要注意的是:this 指向的是 swpier 實(shí)例,而不是當(dāng)前的 vue, 因此借助 vm,來(lái)調(diào)用 methods 里的方法
// console.log(this); // -> Swiper
// 當(dāng)前活動(dòng)塊的索引,與activeIndex不同的是,在loop模式下不會(huì)將 復(fù)制的塊 的數(shù)量計(jì)算在內(nèi)。
console.log('ss'+this.realIndex)
const realIndex = this.realIndex;
vm.carousel(vm.carousels[realIndex]);
}
},
//左右點(diǎn)擊
// navigation: {
// nextEl: '.swiper-button-next',
// prevEl: '.swiper-button-prev',
// },
//分頁(yè)器設(shè)置
pagination: {
el: '.swiper-pagination',
clickable: true
}
},
swiperSlides: [1, 2, 3, 4],
activeIndex: 0,
carousels:[]
}
},
components: {
swiper,
swiperSlide
},
computed: {
swiper() {
return this.$refs.mySwiper.swiper;
}
},
created() {
vm = this;
},
methods: {
carousel(type) {
if (type.url !== null) {
this.$router.push(type.redirect_to);
}
}
}
}如上圖js里定義一個(gè)全局的變量vm,為了在swiper的AIP中調(diào)用vue的方法和綁定的數(shù)據(jù), 這時(shí)候就可以解決點(diǎn)擊事件失效的問(wèn)題了!
以上就是解決使用vue-awesome-swiper組件手動(dòng)滾動(dòng)點(diǎn)擊失效問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于vue-awesome-swiper滾動(dòng)點(diǎn)擊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決iview table組件里的 固定列 表格不自適應(yīng)的問(wèn)題
這篇文章主要介紹了解決iview table組件里的 固定列 表格不自適應(yīng)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
vue之el-tree懶加載數(shù)據(jù)并且實(shí)現(xiàn)樹(shù)的過(guò)濾問(wèn)題
這篇文章主要介紹了vue之el-tree懶加載數(shù)據(jù)并且實(shí)現(xiàn)樹(shù)的過(guò)濾問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
Vue SPA單頁(yè)應(yīng)用首屏優(yōu)化實(shí)踐
這篇文章主要介紹了Vue SPA單頁(yè)應(yīng)用首屏優(yōu)化實(shí)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
element-ui 上傳圖片后清空?qǐng)D片顯示的實(shí)例
今天小編就為大家分享一篇element-ui 上傳圖片后清空?qǐng)D片顯示的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue-router實(shí)現(xiàn)組件間的跳轉(zhuǎn)(參數(shù)傳遞)
這篇文章主要為大家詳細(xì)介紹了vue-router實(shí)現(xiàn)組件間的跳轉(zhuǎn),參數(shù)傳遞方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
vue如何解決空格和空行報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了vue如何解決空格和空行報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue實(shí)現(xiàn)項(xiàng)目通用配置環(huán)境管理詳解
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)項(xiàng)目通用配置環(huán)境管理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
安裝vue3開(kāi)發(fā)者工具但控制臺(tái)沒(méi)有顯示出vue選項(xiàng)的解決
這篇文章主要介紹了安裝vue3開(kāi)發(fā)者工具但控制臺(tái)沒(méi)有顯示出vue選項(xiàng)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10

