Skip to content

t-scroll

Scroll 滚动

组件介绍

滚动组件,scroll-view组件的增强版,增加自定义下拉刷新和上拉加载,WEB端支持【scrollend】事件。

平台兼容

HarmonyH5AndroidiOS小程序UTS

基础用法

vue
<template>
  <t-scroll 
    ref="scrollRef"
    :loadmore="true"
    :refresherEnabled="true"
    @refresherrefresh="onRefresh"
    @scrolltolower="onLoadMore"
  >
    <view v-for="(item, index) in listData" :key="index" class="item">
      {{ item.title }}
    </view>
  </t-scroll>
</template>

<script setup>
const scrollRef = ref(null);
const listData = ref([
  { title: 'Item 1' },
  { title: 'Item 2' },
  { title: 'Item 3' },
]);

function onRefresh() {
  // 下拉刷新逻辑
  setTimeout(() => {
    scrollRef.value.closerefresher();
  }, 1000);
}

function onLoadMore() {
  // 上拉加载更多逻辑
  scrollRef.value.setLoadmore(1); // 加载中
  setTimeout(() => {
    scrollRef.value.setLoadmore(0); // 加载完成
  }, 1000);
}
</script>

<style scoped>
.item {
  padding: 30rpx;
  border-bottom: 1rpx solid #eee;
}
</style>

Props

属性名类型默认值说明可选值
sizeString"large"组件尺寸large, medium, small, mini
typeString"primary"组件类型info, primary, error, warning, success
disabledBooleanfalse组件是否禁用true, false
hoverBooleanfalse是否有点击效果true, false
pathString""点击组件后跳转的页面路径-
effectString"normal"组件显示主题normal, dark, light, plain
maskClassString""遮罩层样式-
loadmoreBooleantrue是否显示加载更多true, false
refresherEnabledBooleantrue是否启用下拉刷新true, false
loadmoreBoxClassString""加载更多盒子的样式-
refresherBoxClassString""下拉刷新盒子的样式-
directionString"vertical"滚动方向vertical
associativeContainerString""关联的滚动容器nested-scroll-view
bouncesBooleantrue控制是否回弹效果true, false
upperThresholdNumber50距顶部多远时触发scrolltoupper事件-
lowerThresholdNumber50距底部多远时触发scrolltolower事件-
scrollTopNumber0设置竖向滚动条位置-
scrollLeftNumber0设置横向滚动条位置-
scrollIntoViewString""值应为某子元素id-
scrollWithAnimationBooleanfalse是否使用滚动动画true, false
refresherThresholdNumber100设置下拉刷新阈值-
showScrollbarBooleanfalse控制是否出现滚动条true, false
customNestedScrollBooleanfalse子元素是否开启嵌套滚动true, false
refresherBackgroundString"transparent"设置下拉刷新区域背景颜色-
refresherTriggeredBooleanfalse设置下拉刷新是否触发true, false

Events

事件名说明回调参数
refresherpulling下拉刷新控件被下拉RefresherEvent
refresherrefresh下拉刷新被触发RefresherEvent
refresherrestore下拉刷新被复位RefresherEvent
refresherabort下拉刷新被中止RefresherEvent
scrolltoupper滚动到顶部/左边ScrollEvent
scrolltolower滚动到底部/右边ScrollEvent
scroll滚动时触发ScrollEvent
scrollend滚动结束时触发ScrollEvent
click点击时触发-
transitionend动画结束时触发-
initFinished组件初始化完成触发组件的节点信息
touchstart触摸开始时触发触摸事件对象
touchend触摸结束时触发触摸事件对象

Methods

方法名说明参数返回值
setLoadmore设置加载更多状态status: number
closerefresher关闭下拉刷新

Slots

插槽名说明
default内容插槽,用于放置可滚动的内容
loadmore加载更多插槽,用于自定义加载更多内容
refresher下拉刷新插槽,用于自定义下拉刷新内容
mask遮罩层插槽,用于自定义遮罩层内容