微信小程序scroll-view滑动穿透问题,怎么解决
时间: 2023-06-20 13:08:27 浏览: 159
解决微信小程序中的滚动穿透问题
5星 · 资源好评率100%
微信小程序中,scroll-view 组件默认会阻止页面上其他元素的滑动事件,这可以通过设置 `catchtouchmove` 属性来解决。
具体做法如下:
1. 在 scroll-view 组件上添加 `catchtouchmove="true"` 属性,如下所示:
```html
<scroll-view catchtouchmove="true">
<!-- scroll-view 内容 -->
</scroll-view>
```
2. 在页面的 `onLoad` 或 `onReady` 生命周期中,获取 scroll-view 组件的高度和宽度,然后在页面上添加一个与 scroll-view 同样大小的透明的 view,并将其 zIndex 设置为比 scroll-view 更高的数值,这样就可以让页面上的其他元素在透明的 view 上进行滑动了。代码如下:
```javascript
onLoad: function () {
var that = this;
wx.createSelectorQuery().select('#scrollview').boundingClientRect(function (rect) {
that.setData({
scrollHeight: rect.height
});
}).exec();
wx.getSystemInfo({
success: function (res) {
that.setData({
windowHeight: res.windowHeight
});
}
});
},
```
```html
<!-- 添加一个与 scroll-view 大小相同的透明 view -->
<view class="transparent-view" style="height: {{windowHeight - scrollHeight}}px; z-index: 1;"></view>
<scroll-view id="scrollview" catchtouchmove="true">
<!-- scroll-view 内容 -->
</scroll-view>
```
3. 在页面的 CSS 中,让透明的 view 不显示出来,代码如下:
```css
.transparent-view {
background-color: transparent;
}
```
通过以上步骤,就可以解决微信小程序中 scroll-view 组件滑动穿透的问题了。
阅读全文