Skip to content
On this page
useHooks tmui.design

手势库 useTouchFinger

这是一个封装完整的手势库hooks函数,适合定义各种手势功能逻辑界面,比如滑动上拉弹跳,或者下拉关闭界面。双指缩放元素等等功能。

方法

事件名参数返回数据描述
useTouchFinger-result直接执行即可

下方解析出来后的方法或者属性都有ts类型提示,我这里不不多解释了。如果想仔细看用处,请直接查看源码,源码已经注释好了。

ts
// result:返回的结构体,可以直接解构使用:
{
	touchstart,
	touchmove, 
	touchend, 
	touchcancel, 
	//添加监听事件 type为监听的类型,call为回调函数
	addEventListener:(type:"tap" | "pinch" | "rotate" | "touchStart" | "touchMove" | "touchEnd" | "touchCancel"
            | "pressMove" | "doubleTap" | "longTap" | "swipe" | "singleTap" | "multipointStart" | "multipointEnd",call:Function),
	//当手指触摸屏幕时,距离它的上一次的距离
	deltaXY, 
	//双指捏合之间的距离长度
	pinchStartLen, 
	//双指缩放时的缩放率,最小为0.1
	scale, 
	//双指旋转滑动时的角度。
	angle, 
	//单指在屏幕滑动时的方向
	direction, 
	//单指点击时的位置 
	preTapPosition,
}

** addEventListener的用法就是为上传添加相关事件。其中的type就是事件名称,如果不懂什么意思请直接查找阅读源码,已经注释好了。

使用

ts
// view上绑定事件
<view
	@touchstart="touchstart"
    @touchmove="touchmove"
    @touchend="touchend"
    @touchcancel="touchcancel"
>
</view>

import { useTouchFinger } from '@/tmui/tool/useFun/useTouchFinger'
const { touchstart, 
        touchmove, 
        touchend, 
        touchcancel, 
        addEventListener,
        deltaXY, 
        pinchStartLen, 
        scale, 
        angle, 
        direction, 
        preTapPosition,
        } = useTouchFinger();
// 添加监听事件,当双指在元素旋转时触发
addEventListener('rotate',(evt)=>{
	// 打印当前旋转的角度。
	console.log(rotate.value)
})

// 添加监听事件,当双指在元素捏合时触发
addEventListener('pinch',(evt)=>{
	// 打印当前旋捏合缩放的值
	console.log(scale.value)
})

// 添加监听事件,当单指在元素滑动时触发
addEventListener('swipe',(evt)=>{
	// 打印当前滑动的方向
	console.log(direction.value)
})

类型参考

ts
//direction方向
Left|Right|Top|Bootom

注意事项

属性都最Ref类型,访问时需要带.value。