scroll-view组件
属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| style | string | 类型 | ||
| scroll-x | boolean | false | 是否允许横向滚动 | |
| scroll-y | boolean | false | 是否允许纵向滚动 | |
| upper-threshold | number,string | 50 | 距顶部/左边多远时,触发 scrolltoupper 事件 | |
| lower-threshold | number,string | 50 | 距底部/右边多远时,触发 scrolltolower 事件 | |
| scroll-top | number,string | 设置竖向滚动条位置 | ||
| scroll-left | number,string | 设置横向滚动条位置 | ||
| scroll-into-view | string | 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素 | ||
| scroll-with-animation | boolean | false | 在设置滚动条位置时使用动画过渡 | |
| enable-flex | boolean | false | 启用 flexbox 布局。开启后,当前节点声明了 display: flex 就会成为 flex container,并作用于其孩子节点,display-direction 默认是 row,需要开发者在 scroll-view 上设置 flex-direction 为 column | |
| refresher-enabled | boolean | false | 开启自定义下拉刷新 | |
| refresher-threshold | number | 45 | 设置自定义下拉刷新阈值 | |
| refresher-default-style | string | black | 设置自定义下拉刷新默认样式,支持设置 black | |
| refresher-background | string | #FFF | 设置自定义下拉刷新区域背景颜色 | |
| refresher-triggered | boolean | false | 设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发,开发者需要先将 refresherTriggered 手动置为 true,再置为 false,来触发 refresherrestore 事件,以及隐藏 refresher | |
| show-scrollbar | boolean | true | 滚动条显隐控制 (同时开启 enhanced 属性后生效) | |
| bindscrolltoupper | eventhandle | 滚动到顶部/左边时触发 | ||
| bindscrolltolower | eventhandle | 滚动到底部/右边时触发 | ||
| bindscroll | eventhandle | 滚动时触发 | ||
| bindrefresherpulling | eventhandle | 自定义下拉刷新控件被下拉 | ||
| bindrefresherrefresh | eventhandle | 自定义下拉刷新被触发 | ||
| bindrefresherrestore | eventhandle | 自定义下拉刷新被复位 |

<view class="page-body">
<view class="page-section">
<view class="page-section-title">
<text>
横向滚动 \n
scroll-left: 200 \n
showScrollbar: false \n
bindscrolltoupper \n
bindscrolltolower \n
scroll-y: true \n
scroll-x: true \n
</text>
</view>
<view class="page-section-spacing">
<scroll-view class="scroll-view_H" showScrollbar="{{false}}" scroll-left="200" bindscrolltoupper="upperHorizontal" bindscrolltolower="lowerHorizontal" scroll-y scroll-x bindscroll="scroll" style="width: 100%">
<view id="demo1" class="scroll-view-item_H1 demo-text-1"></view>
<view id="demo2" class="scroll-view-item_H1 demo-text-2"></view>
<view id="demo3" class="scroll-view-item_H1 demo-text-3"></view>
<view id="demo4" class="scroll-view-item_H1 demo-text-1"></view>
<view id="demo5" class="scroll-view-item_H1 demo-text-2"></view>
<view id="demo6" class="scroll-view-item_H1 demo-text-3"></view>
</scroll-view>
</view>
</view>
<view class="page-section">
<view class="page-section-title">
<text>
纵向滚动 \n
showScrollbar: true \n
scroll-y: true \n
refresher-enabled: true \n
refresher-threshold: 80 \n
refresher-background: lightgreen \n
</text>
</view>
<view class="page-section-spacing">
<scroll-view scroll-y showScrollbar="{{true}}" style="width: 100%; height: 400px;" refresher-enabled="{{true}}" refresher-threshold="{{80}}" refresher-default-style="none" refresher-background="lightgreen">
<view slot="refresher" class="refresh-container" style="display: block; width: 100%; height: 80px; background: #ECBDF0; display: flex; align-items: center;">
<view class="view1" style="position: absolute; color: white; text-align: center; width: 100%;">下拉刷新</view>
</view>
<view id="demo1" class="scroll-view-item_V demo-text-1"></view>
<view id="demo2" class="scroll-view-item_V demo-text-2"></view>
<view id="demo3" class="scroll-view-item_V demo-text-3"></view>
<view id="demo4" class="scroll-view-item_V demo-text-1"></view>
<view id="demo5" class="scroll-view-item_V demo-text-2"></view>
<view id="demo6" class="scroll-view-item_V demo-text-3"></view>
</scroll-view>
</view>
</view>
<view class="page-section">
<view class="page-section-title">
<text>
scroll-y: true \n
refresher-enabled: true \n
refresher-threshold: 100 \n
refresher-default-style: "white" \n
refresher-background: "lightgreen" \n
refresher-triggered: 触发 \n
bindrefresherpulling: 触发 \n
bindrefresherrefresh:触发 \n
bindrefresherrestore:触发 \n
bindrefresherabort:触发 \n
scroll-top="100" \n
</text>
</view>
<view class="page-section-spacing">
<scroll-view scroll-y style="width: 100%; height: 400px;" scroll-top="100" refresher-enabled="{{true}}" refresher-threshold="{{100}}" refresher-default-style="white" refresher-background="lightgreen" refresher-triggered="{{triggered}}" bindrefresherpulling="onPulling" bindrefresherrefresh="onRefresh" bindrefresherrestore="onRestore" bindrefresherabort="onAbort">
<view id="demo1" class="scroll-view-item_V demo-text-1"></view>
<view id="demo2" class="scroll-view-item_V demo-text-2"></view>
<view id="demo3" class="scroll-view-item_V demo-text-3"></view>
<view id="demo4" class="scroll-view-item_V demo-text-1"></view>
<view id="demo5" class="scroll-view-item_V demo-text-2"></view>
<view id="demo6" class="scroll-view-item_V demo-text-3"></view>
</scroll-view>
</view>
</view>
<view class="page-section">
<view class="page-section-title">
<text>
scroll-y="true" \n
bindscrolltoupper 触发 \n
bindscrolltolower 触发 \n
bindscroll 触发 \n
scroll-into-view 触发 滚动到B \n
</text>
</view>
<view class="page-section-spacing">
<scroll-view scroll-y="true" style="height: 150px;" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-into-view="#case1Demo2">
<view id="demo1" class="scroll-view-item demo-text-1"></view>
<view id="case1Demo2" class="scroll-view-item demo-text-2"></view>
<view id="case1Demo3" class="scroll-view-item demo-text-3"></view>
<view id="demo4" class="scroll-view-item demo-text-1"></view>
<view id="case1Demo5" class="scroll-view-item demo-text-2"></view>
<view id="case1Demo6" class="scroll-view-item demo-text-3"></view>
</scroll-view>
</view>
</view>
</view>