業務場景是vant組件庫的Popup彈窗中包裹著vue-awesome-swiper組件,swiper組件中包含better-scroll,輪播swiper是橫向滑動的,而better-scroll是縱向滾動。
1.由于vant中的popup彈窗嵌套了better-scroll,導致better-scroll縱向滑動失效,配置一下Popup彈窗的屬性即可:
tips:盡量把Popup彈窗掛在到body節點,防止樣式錯亂。
<van-popup
v-model="show"
get-container="body" // 指定掛載的節點
:lock-scroll="false" // 是否鎖定背景滾動
:close-on-click-overlay="false" // 是否在點擊遮罩層后關閉
>
2.由于拖動臨界值造成滑動失效或達不到預期效果,所以swiper要加如下屬性:
swiperOption: {
passiveListeners: false, // 用來提升swiper在移動設備的中的scroll表現(Passive Event Listeners),但是會和e.preventDefault沖突,所以有時候你需要關掉它。
touchAngle: 30, // 允許觸發拖動的角度值。默認45度,即使觸摸方向不是完全水平也能拖動slide。
threshold: 12, // 拖動的臨界值(單位為px),如果觸摸距離小于該值滑塊不會被拖動。
}