Scroll 滚动
滚动组件,用于提供滚动容器,支持配置滚动类型、是否有弹跳效果、滚动方向、是否自定义嵌套滚动、是否启用下拉刷新和上拉加载等功能。
示例
vue
<template>
<t-page title="Scroll" class="p.30">
<t-card class="mb.30" title="Scroll 滚动组件"
sub-title="自研滚动组件非scroll-view封装 自研惯性阻力算法-对齐web端,支持增量滚动,暂停滚动,增加关闭刷新接口,兼容PC端手势滚动"></t-card>
<t-section title="基础使用" class="mb.30"></t-section>
<t-col class="tdr-tdb-mb.30">
<t-scroll class="h.300" direction="h">
<t-row class="w.300-h.300-fc" v-for="i in 10" :key="i">
<t-text>{{i}}</t-text>
</t-row>
</t-scroll>
</t-col>
<t-section title="下拉刷新-上拉加载 + 数据分页加载后增量滚动" class="mb.30"></t-section>
<t-col class="tdr-tdb-mb.30">
<t-scroll class="h.500" ref="tuiscroll">
<t-row class="h.300-fc" v-for="i in loaderCount" :key="i">
<t-text>{{i}}</t-text>
</t-row>
</t-scroll>
</t-col>
<t-section title="其它用法同scroll-view(后续完善)" class="mb.30"></t-section>
</t-page>
</template>
<script>
export default {
data() {
return {
loaderCount: 100
};
},
methods: {
refresherrefresh() {
setTimeout(() => {
this.closeRefresher()
}, 1000)
},
loaderrefresh() {
setTimeout(() => {
this.loaderCount += 10
this.$nextTick(() => {
const ins = this.$refs['tuiscroll'] as TScrollComponentPublicInstance
ins.closeLoader()
ins.scrollingIncremental(300, 3000) //增量滚动向下滚动300px
})
}, 500)
},
closeRefresher() {
const ins = this.$refs['tuiscroll'] as TScrollComponentPublicInstance
ins.closeRefresher()
}
}
}
</script>
支持平台
安卓 | ios | web | 微信小程序 | 支付宝小程序 | QQ小程序 |
---|---|---|---|---|---|
√ | √ | √ | x | x | x |
Props
名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
type | 滚动类型 | String | 'p' |
bounces | 是否有弹跳效果 | Boolean | true |
direction | 滚动方向 | String | 'vertical' |
customNestedScroll | 是否自定义嵌套滚动 | Boolean | false |
refresher | 是否启用下拉刷新 | Boolean | false |
refresherClass | 下拉刷新区域的类名 | String | '' |
loader | 是否启用上拉加载 | Boolean | false |
loaderClass | 上拉加载区域的类名 | String | '' |
backgroundClass | 背景区域的类名 | String | '' |
Events
名称 | 描述 | 参数 |
---|---|---|
refresherrefresh | 当下拉刷新被触发时 | - |
loaderrefresh | 当上拉加载被触发时 | - |
scrollend | 当滚动结束时触发 | - |
scroll | 当滚动时触发 | - |
Methods
名称 | 描述 |
---|---|
rescan | 重新开始扫描 |
scanImageByURI | 通过URI扫描图片 |
maskCanvasInit | 初始化遮罩Canvas |
drawMask | 绘制遮罩 |
drawScannerLine | 绘制扫描线 |
init | 初始化滚动组件 |
translateBoxEl | 移动滚动容器 |
translateEl | 移动滚动元素 |
touchstart | 处理触摸开始事件 |
touchmove | 处理触摸移动事件 |
touchend | 处理触摸结束事件 |
getPos | 获取触摸位置 |
animateScroll | 执行滚动动画 |
closeRefresher | 关闭下拉刷新 |
closeLoader | 关闭上拉加载 |
setRefresherState | 设置下拉刷新状态 |
setLoaderState | 设置上拉加载状态 |
emitScrollend | 触发滚动结束事件 |