ScrollView
版本要求:
@ray-js/ray≥0.5.10
描述
可滚动视图容器,支持横向或纵向滚动,可配置下拉刷新、滚动事件监听等功能。
属性
| 属性 | 类型 | 必填 | 默认值 | 说明 | 最低版本 |
|---|---|---|---|---|---|
scrollX | boolean | 否 | false | 允许横向滚动 | - |
scrollY | boolean | 否 | false | 允许纵向滚动 | - |
upperThreshold | number | string | 否 | 50 | 距顶部/左边多远时,触发 scrolltoupper 事件 | - |
lowerThreshold | number | string | 否 | 50 | 距底部/右边多远时,触发 scrolltolower 事件 | - |
scrollTop | number | string | 否 | 0 | 设置竖向滚动条位置 | - |
scrollLeft | number | string | 否 | 0 | 设置横向滚动条位置 | - |
scrollIntoView | string | 否 | - | 值应为某子元素 id(id 不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素 | - |
scrollIntoViewOffset | number | 否 | 0 | 跳转到 scrollIntoView 目标节点时的额外偏移,单位 px | v1.7.58 |
scrollWithAnimation | boolean | 否 | false | 在设置滚动条位置时使用动画过渡 | - |
| 否 | - | 滚动时触发 | - | ||
| 否 | - | 滚动到顶部/左边时触发 | - | ||
| 否 | - | 滚动到底部/右边时触发 | - | ||
refresherEnabled | boolean | 否 | false | 开启自定义下拉刷新 | v0.9.3 |
refresherThreshold | number | 否 | 45 | 设置自定义下拉刷新阈值 | v0.9.3 |
refresherDefaultStyle | "black" | "white" | "none" | "auto" | 否 | black | 设置自定义下拉刷新默认样式 | v0.9.3 |
refresherBackground | string | 否 | #FFF | 设置自定义下拉刷新区域背景颜色 | v0.9.3 |
refresherTriggered | boolean | 否 | false | 设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发 | v0.9.3 |
hideScrollbar | boolean | 否 | true | 隐藏滚动条 | - |
bounces | boolean | 否 | true | 是否启用iOS滚动回弹效果(iOS 16.0+ 完全支持) | v1.7.58 |
| 否 | - | 自定义下拉刷新控件被下拉时触发 | v0.9.3 | ||
| 否 | - | 自定义下拉刷新被触发时触发 | v0.9.3 | ||
| 否 | - | 自定义下拉刷新被复位时触发 | v0.9.3 | ||
| 否 | - | 自定义下拉刷新被中止时触发 | v0.9.3 |
引用对象
interface
RefresherPullingEventinterface
RefresherRefreshEventinterface
RefresherRestoreEventinterface
RefresherAbortEventinterface
BaseEvent| 属性 | 类型 | 必填 | 描述 |
|---|---|---|---|
type | string | 是 | 事件类型 |
timeStamp | number | 是 | 页面打开到触发事件所经过的毫秒数 |
| 是 | 触发事件的源组件 | ||
| 是 | 当前组件的一些属性值集合 | ||
mark | any | 否 | 事件标记数据 |
interface
Target| 属性 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | string | 是 | 事件源组件的id |
| 是 | 事件源组件上的 `dataset` 自定义属性组成的集合 |
合法值
ScrollDirectionDetail.direction
| 值 | 说明 | 最低版本 |
|---|---|---|
top | 滚动到顶部 | - |
left | 滚动到左边 | - |
bottom | 滚动到底部 | - |
right | 滚动到右边 | - |
refresherDefaultStyle
| 值 | 说明 | 最低版本 |
|---|---|---|
black | 黑色刷新指示器 | - |
white | 白色刷新指示器 | - |
none | 不使用默认刷新指示器,可自行实现刷新样式 | - |
auto | 刷新指示器颜色跟随 App 主题 | - |
示例代码
基础用法
下拉刷新
横向滚动
滚动到指定位置
常见问题
为何 scroll-view 在 popup 扩展组件中无法滑动?
popup 组件上加上 disableScroll 属性并将值设为 false 才能滑动。
如何监听 scroll-view 滚动到底部?
可以直接在 onScroll 方法中进行处理,使用 onScrollToLower 监听 scrollView 的滚动高度来进行判断是否滑动到了底部。
scrollHeight 是 scrollView 里面所有 View 的高度和,scrollTop 是滚动的值;