<scroller>
<scroller>是Tenon中可以滚动的容器
属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
scrollDirection | String | 'vertical' | 滚动方向:vertical 垂直滚动horizontal 水平滚动 |
showScrollBar | Boolean | false | 是否展示滚动条 |
bounces | Boolean | true | 滑动到边缘的时候是否有回弹效果 |
方法
方法名 | 参数 | 返回值 | 说明 |
---|---|---|---|
scrollTo | (x:number, y:number) | void | 滚动到制定位置(x,y单位是px) |
scrollBy | (dx:number, dy:number) | void | 滚动一定的偏移量(x,y单位是px) |
scrollToTop | () | void | 滚动到顶部,如果是水平组件则滚动到最左侧 |
scrollToBottom | () | void | 滚动到底部,如果是水平组件则滚动到最右侧 |
stopPullRefresh | () | void | 结束下拉刷新 |
stopLoadMore | (enable: boolean) | void | 结束加载更多(enable 下次是否还能加载更多) |
子组件
除支持任意子组件外,还支持两个特殊子组件分别为:
<refresh>
触发下拉刷新时的View
备注:
refresh
视图内可添加任意子组件
<loadmore>
触发上拉加载更多时的View
备注:
loadmore
视图内可添加任意子组件
TIP
refresh
和 loadmore
仅在 scroller
组件下有效(即需要保证refresh
和 loadmore
的父组件是 scroller
才可以生效)。
样式
通用样式,可参考样式介绍
事件
通用事件,可参考事件介绍
scroll 滚动事件
@param(scrollEvent) scrollEvent属性
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
type | String | 事件类型 | type: 'scroll' |
state | Number | 手势状态 状态说明: 0:normal(初始禁止状态), 1:began(开始滚动), 2:scroll(滚动中), 3:ended(停止滚动), 4:scroll_up(滚动过程中,手指抬起) | state: 1 |
timestamp | Number | 时间戳 | timestamp: 1578973450142 |
offsetX | Number | x方向实际滚动偏移量(单位:px) | offsetX: 10 |
offsetY | Number | y方向实际滚动偏移量(单位:px) | offsetY: 10 |
dx | Number | x方向滚动与上一个事件的差值(单位:px) | dx: 10 |
dy | Number | y方向滚动与上一个事件的差值(单位:px) | dy: 10 |
onRefresh 下拉刷新事件
@param(state)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
state | String | 刷新状态 状态说明: 0:初始状态/结束刷新 1:开始下拉 2:正在刷新 | state: 1 |
onLoadMore 加载更多事件
@param(state)
属性名 | 类型 | 说明 | 示例 |
---|---|---|---|
state | String | 加载状态 状态说明: 0:初始状态/结束加载 1:正在加载 2:无更多数据 | state: 1 |
示例
Tenon Vue
html
<!-- App.vue -->
<template>
<scroller>
<refresh>
<text>I am refresh view!</text>
</refresh>
<loadmore>
<text>I am loadmore view!</text>
</loadmore>
<view>
<text>I am Scroller Text 1!</text>
<text>I am Scroller Text 1!</text>
</view>
</scroller>
</template>
<script>
export default{}
</script>
更多用法,可参考Tenon Vue 官方示例。
Tenon React
jsx
import React, {useState} from "react"
import Tenon from "@hummer/tenon-react"
function ScrollerApp() {
return (
<scroller>
<refresh>
<text>I am refresh view!</text>
</refresh>
<loadmore>
<text>I am loadmore view!</text>
</loadmore>
<view>
<text>I am Scroller Text 1!</text>
<text>I am Scroller Text 1!</text>
</view>
</scroller>
);
}
Tenon.render(<ScrollerApp />)
更多用法,可参考Tenon React 官方示例。