支付宝小程序外层scroll-view怎么控制内层scroll-view滚动
时间: 2023-12-31 15:05:46 浏览: 161
支付宝小程序中,外层scroll-view控制内层scroll-view滚动的方法如下:
1. 在外层scroll-view的wxml文件中,设置scroll-view的属性direction为vertical,表示垂直滚动。
```html
<scroll-view scroll-y="{{true}}" style="height: 100vh;">
<!-- 内层scroll-view的内容 -->
</scroll-view>
```
2. 在内层scroll-view的wxml文件中,设置scroll-view的属性direction为horizontal,表示水平滚动。
```html
<scroll-view scroll-x="{{true}}" style="white-space: nowrap;">
<!-- 内层scroll-view的内容 -->
</scroll-view>
```
这样,外层scroll-view就可以控制内层scroll-view的滚动了。
相关问题
上述不修改子元素scroll-view的滚动方向 在子元素中可以水平滚动,现在的问题是当垂直滚动时(手势触发区域在scroll-view里) ,父容器垂直滚动没有触发
这个问题的原因在于`<view>`默认会阻止其内部滚动条产生的滚动事件传递给父级元素,因为它负责整个区域的滚动。为了解决这个冲突,你需要让`<view>`不再拦截子元素的滚动事件。在小程序中,你可以通过调整`<view>`的样式或者使用特殊的滚动组件来实现这一点。
一种解决方案是使用`wx:touch-scroll`属性,它会让整个`<view>`响应触摸滑动事件:
```html
<view wx:touch-scroll="{{true}}" style="height:600rpx;">
<scroll-view style="width:100vw;height:260rpx;scroll-x={{true}}">
...
</scroll-view>
...
</view>
```
另一个方案是在`<scroll-view>`外部添加一个包裹层,然后将`scroll-view`作为其子元素,这样外层`<view>`就可以接收到垂直滚动事件:
```html
<view style="height:600rpx;">
<scroll-view class="inner-scroll" style="width:100vw;height:260rpx;scroll-x={{true}}">
...
</scroll-view>
</view>
<style>
.inner-scroll {
position: relative;
overflow-y: auto;
}
</style>
```
这样,当你在子`scroll-view`内垂直滑动时,父`<view>`也能响应滑动事件。
阅读全文