<canvas
@touchstart="handleTouchStart"
@touchend="handleTouchEnd"
</canvas>
function handleTouchStart(e: TouchEvent) {
touchStartX.value = e.touches[0].x;
touchStartY.value = e.touches[0].y;
}
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 4.62
手机系统: Android
手机系统版本号: Android 15
手机厂商: 华为
手机机型: nave
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
<canvas
@touchstart="handleTouchStart"
@touchend="handleTouchEnd"
</canvas>
function handleTouchStart(e: TouchEvent) {
touchStartX.value = e.touches[0].x;
touchStartY.value = e.touches[0].y;
}
类型错误导致ts警告
正常
touchstart事件的参数e的类型TouchEvent 有问题接口是 这个里面的Touch类型没有xy,但是打印出来是xy
interface Touch {
/ MDN Reference */
readonly clientX: number;
/* MDN Reference /
readonly clientY: number;
/ MDN Reference */
readonly force: number;
/ MDN Reference */
readonly identifier: number;
/* MDN Reference /
readonly pageX: number;
/ MDN Reference */
readonly pageY: number;
/ MDN Reference */
readonly radiusX: number;
/* MDN Reference /
readonly radiusY: number;
/ MDN Reference */
readonly rotationAngle: number;
/ MDN Reference */
readonly screenX: number;
/* MDN Reference /
readonly screenY: number;
/ MDN Reference */
readonly target: EventTarget;
}
实际打印"touches": {
"0": {
"y": 400.66668701171875,
"x": 293.66668701171875
}
}
1 个回复
DCloud_UNI_JBB
代码里面有函数会将触摸点的视口坐标转换为相对于目标元素的坐标,会往上面添加x和y两个属性。