scroll-view
解释:可滚动视图区域。
属性说明:
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
scroll-x | Boolean | false | 允许横向滚动 |
scroll-y | Boolean | false | 允许纵向滚动 |
upper-threshold | Number | 50 | 距顶部/左边多远时(单位 px),触发 scrolltoupper 事件 |
lower-threshold | Number | 50 | 距底部/右边多远时(单位 px),触发 scrolltolower 事件 |
scroll-top | Number | - | 设置竖向滚动条位置。要动态设置滚动条位置,用法scroll-top="{= scrollTop =}" |
scroll-left | Number | - | 设置横向滚动条位置。要动态设置滚动条位置,用法scroll-left="{= scrollLeft =}" |
scroll-into-view | String | - | 值应为某子元素 id(id 不能以数字开头),设置滚动方向后,按方向滚动到该元素,动态设置用法scroll-into-view=”{= scrollIntoView =}” 。 |
scroll-with-animation | Boolean | false | 在设置滚动条位置时使用动画过渡 |
bindscrolltoupper | EventHandle | - | 滚动到顶部/左边,会触发 scrolltoupper 事件 |
bindscrolltolower | EventHandle | - | 滚动到底部/右边,会触发 scrolltolower 事件 |
bindscroll | EventHandle | - | 滚动时触发, event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY} |
注意:使用竖向滚动时,需要给 <scroll-view/>
一个固定高度,通过 CSS 设置 height。
示例:在开发者工具中预览效果
- <scroll-view scroll-y style="height: 300px;"
bind:scrolltoupper="upper" bind:scrolltolower="lower" scroll-into-view="four"
upper-threshold="10" lower-threshold="10" scroll-top="150" bind:scroll="myscroll">
<view id="one" class="bg-red">view1</view>
<view id="two" class="bg-green">view2</view>
<view id="three" class="bg-yellow">view3</view>
<view id="four" class="bg-blue">view4</view>
</scroll-view>
- .bg-red, .bg-yellow, .bg-blue, .bg-green {
height: 150px;
text-align: center;
}
.bg-red {
background: #FFB6C1;
}
.bg-yellow {
background: #FFD700;
}
.bg-blue {
background: #87CEFA;
}
.bg-green {
background: #98FB98;
}
- Page({
upper: e => {
console.log('upper', e);
},
lower: e => {
console.log('lower', e);
},
myscroll: e => {
console.log('scroll', e);
}
});
说明:
- 请勿在 scroll-view 中使用 textarea、map、canvas、video 组件;
- scroll-into-view 的优先级低于 scroll-top、scroll-left;
- 在滚动 scroll-view 时会阻止页面回弹,所以在 scroll-view 中滚动,是无法触发 onPullDownRefresh;
- 若要使用下拉刷新,请使用页面的滚动,而不是 scroll-view。