Skip to content

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>

支持平台

安卓iosweb微信小程序支付宝小程序QQ小程序
xxx

Props

名称描述类型默认值
type滚动类型String'p'
bounces是否有弹跳效果Booleantrue
direction滚动方向String'vertical'
customNestedScroll是否自定义嵌套滚动Booleanfalse
refresher是否启用下拉刷新Booleanfalse
refresherClass下拉刷新区域的类名String''
loader是否启用上拉加载Booleanfalse
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触发滚动结束事件