t-gesture
Gesture 手势
组件介绍
手势组件,用于处理触摸事件,返回tuiTouchstart、tuiTouchmove、tuiTouchend、tuiTouchcancel事件,主要解决PC端不支持touchMove事件,避免了适配WEB端大量的条件渲染。
平台兼容
| Harmony | H5 | Android | iOS | 小程序 | 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
| 属性名 | 类型 | 默认值 | 说明 | 可选值 |
|---|---|---|---|---|
| size | String | "" | 组件尺寸 | large, medium, small, mini |
| type | String | "" | 组件类型 | info, primary, error, warning, success |
| disabled | Boolean | false | 组件是否禁用 | true, false |
| hover | Boolean | false | 是否有点击效果 | true, false |
| path | String | "" | 点击组件后跳转的页面路径 | - |
| effect | String | "" | 组件显示主题 | normal, dark, light, plain |
Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| touchstart | 手指触摸动作开始时触发 | TuiTouchEvent |
| touchmove | 手指触摸后移动触发 | TuiTouchEvent |
| touchend | 手指触摸动作结束时触发 | TuiTouchEvent |
| touchcancel | 手指触摸动作被打断时触发 | TuiTouchEvent |
| click | 点击时触发 | - |
| transitionend | 动画结束时触发 | - |
| initFinished | 初始化完成会返回组件的节点信息 | NodeInfo |
TuiTouchEvent 对象
| 属性名 | 类型 | 说明 |
|---|---|---|
| type | String | 事件类型 |
| x | Number | 触摸点的X坐标(相对于视口) |
| y | Number | 触摸点的Y坐标(相对于视口) |
| offsetX | Number | 触摸点的X坐标(相对于组件) |
| offsetY | Number | 触摸点的Y坐标(相对于组件) |
| event | UniTouchEvent | 原始触摸事件对象 |
| rect | DOMRect | 组件的矩形信息 |
Slots
| 插槽名 | 说明 |
|---|---|
| default | 内容插槽,用于放置需要处理手势的内容 |