【uniapp】swiper组件touch事件和click兼容问题

如果swiper组件加了touch事件和click事件都加了,会触发的很不灵敏,有时候click事件不触发

案例

这种情况click偶尔会失效

javascript 复制代码
<template>
<swiper @touchstart="touchStart" @touchcancel="touchEnd" @touchend="touchEnd">
	<swiper-item @click="onClick">...</swiper-item>
</swiper>
</<template>

解决思路

不加click,利用touch事件的按下和抬起的位置和时间长度来判断是点击还是滑动

javascript 复制代码
touchStart(e) {
	this.touchxy = {
		x: e.changedTouches[0].clientX,
		y: e.changedTouches[0].clientY,
		time: e.timeStamp
	}
	....
},
touchEnd(e) {
	
		if (Math.abs(e.changedTouches[0].clientX - this.touchxy.x) < 10 && Math.abs(e.changedTouches[0]
				.clientY - this.touchxy.y) < 10 && e.timeStamp - this.touchxy.time < 1000) {
			//点击事件
		}
}
相关推荐
脾气有点小暴2 小时前
uniapp滚动容器冲突
uni-app
鱼樱前端3 小时前
uni-app开发app之前提须知(IOS/安卓)
前端·uni-app
二狗mao17 小时前
Uniapp使用websocket进行ai回答的流式输出
websocket·网络协议·uni-app
良逍Ai出海1 天前
Build in Public|为什么我开始做一款相册清理 App(听说有竞品年收益40W)
ios·uni-app·ai编程·coding
2501_915106323 天前
iOS App 测试工具全景分析,构建从开发调试到线上监控的多阶段工具链体系
android·测试工具·ios·小程序·uni-app·iphone·webview
dchen773 天前
uniapp实现上拉刷新和下拉刷新的两种方式
uni-app
FinelyYang3 天前
uniapp+unipush2.0+WebRTC实现h5一对一视频通话
uni-app·音视频·webrtc
天蓝色的鱼鱼3 天前
mescroll老用户亲测z-paging:这些功能让我果断切换!
前端·uni-app
anyup3 天前
🔥100+ 天,已全面支持鸿蒙!uView Pro 近期更新盘点及未来计划
前端·uni-app·harmonyos
半兽先生4 天前
uniapp高性能ui框架uni-ui
ui·uni-app