這個問題在很多時候都會用到,比如在調(diào)用自定義彈窗、加載動畫的時候,需要讓頁面不可以滑動,等等。
其實這個問題很簡單,直接看代碼:
<!-- index.wxml -->
<view class="mask" catchtouchmove="stopTouch" bindtap="hidePop" wx:if="{{mask}}"></view>
<view class="pop" catchtouchmove="stopTouch" wx:if="{{mask}}">
<view>這是彈出層--1</view>
<view>這是彈出層--2</view>
<view>這是彈出層--3</view>
</view>
<view class="btn" bindtap="showPop">按鈕</view>
復(fù)制代碼
// index.js
Page({
data: {
mask:false,
},
stopTouch() {},
showPop() {
this.setData({
mask: true
})
},
hidePop() {
this.setData({
mask: false
})
}
})
復(fù)制代碼
/* index.wxss */
.mask, .pop, .btn {
position: fixed;
bottom: 0;
left: 0;
}
.mask {
width: 100%;
height: 100%;
z-index: 997;
background-color: #858585b6;
}
.pop {
height: 200px;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
background-color: #fff;
z-index: 998;
}
.btn {
width: 100%;
height: 50px;
color: aliceblue;
text-align: center;
line-height: 50px;
background-color: #4df547;
}
復(fù)制代碼
我們的彈出層的層級肯定是很高的,彈出層出現(xiàn)后,我們再點擊、滑動的時候,點擊的節(jié)點肯定是彈出層的節(jié)點,如果我們再彈出層以及遮罩層(如果有的話)綁定一個catchtouchmove
事件,這樣,在滑動的時候就無法滑動頁面了