Skip to content

t-gesture

Gesture 手势

组件介绍

手势组件,用于处理触摸事件,返回tuiTouchstart、tuiTouchmove、tuiTouchend、tuiTouchcancel事件,主要解决PC端不支持touchMove事件,避免了适配WEB端大量的条件渲染。

平台兼容

HarmonyH5AndroidiOS小程序UTS

基础用法

vue
<template>
  <t-gesture 
    @touchstart="handleTouchStart"
    @touchmove="handleTouchMove"
    @touchend="handleTouchEnd"
    @touchcancel="handleTouchCancel"
    class="gesture-area"
  >
    <view class="content">
      <t-text>触摸此区域</t-text>
      <t-text>触摸位置: {{ touchPosition }}</t-text>
    </view>
  </t-gesture>
</template>

<script setup>
const touchPosition = ref('未触摸');

function handleTouchStart(e) {
  console.log('触摸开始', e);
  touchPosition.value = `开始位置: (${e.x}, ${e.y})`;
}

function handleTouchMove(e) {
  console.log('触摸移动', e);
  touchPosition.value = `移动位置: (${e.x}, ${e.y})`;
}

function handleTouchEnd(e) {
  console.log('触摸结束', e);
  touchPosition.value = `结束位置: (${e.x}, ${e.y})`;
}

function handleTouchCancel(e) {
  console.log('触摸取消', e);
  touchPosition.value = '触摸取消';
}
</script>

<style scoped>
.gesture-area {
  width: 100%;
  height: 400rpx;
  background-color: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
}

.content {
  text-align: center;
}
</style>

Props

属性名类型默认值说明可选值
sizeString""组件尺寸large, medium, small, mini
typeString""组件类型info, primary, error, warning, success
disabledBooleanfalse组件是否禁用true, false
hoverBooleanfalse是否有点击效果true, false
pathString""点击组件后跳转的页面路径-
effectString""组件显示主题normal, dark, light, plain

Events

事件名说明回调参数
touchstart手指触摸动作开始时触发TuiTouchEvent
touchmove手指触摸后移动触发TuiTouchEvent
touchend手指触摸动作结束时触发TuiTouchEvent
touchcancel手指触摸动作被打断时触发TuiTouchEvent
click点击时触发-
transitionend动画结束时触发-
initFinished初始化完成会返回组件的节点信息NodeInfo

TuiTouchEvent 对象

属性名类型说明
typeString事件类型
xNumber触摸点的X坐标(相对于视口)
yNumber触摸点的Y坐标(相对于视口)
offsetXNumber触摸点的X坐标(相对于组件)
offsetYNumber触摸点的Y坐标(相对于组件)
eventUniTouchEvent原始触摸事件对象
rectDOMRect组件的矩形信息

Slots

插槽名说明
default内容插槽,用于放置需要处理手势的内容