微信小程序几乎给每个组件都提供了一些基本的交互方法,比如tap、longtap、tapstart、tapend等事件,但是没有双击事件doubletap,有时候可能需要双击事件,但是官方并没有提供,所以这里我们就用现有的事件写一个双击事件
首先,我们在 data
里面定义一些需要用到的参数
data: {
touchStartTime: 0,
touchEndTime: 0,
lastTapTime: 0,
lastTapTimeoutFunc: null
},
分别是触摸开始时间、结束时间,最后一次点击发生时间,时钟函数
基本思路是,如果两次tap发生间隔小于200ms,就当做是双击,否则视为单
tap: function (e) {
var that = this
// 控制点击事件在350ms内触发,加这层判断是为了防止长按时会触发点击事件
if (that.data.touchEndTime - that.data.touchStartTime < 350) {
// 当前点击的时间
var currentTime = e.timeStamp
var lastTapTime = that.data.lastTapTime
// 更新最后一次点击时间
that.data.lastTapTime = currentTime
// 如果两次点击时间在200毫秒内,则认为是双击事件
if (currentTime - lastTapTime < 200) {
// 双击事件
clearTimeout(that.data.lastTapTimeoutFunc);
console.log("double click")
} else {
that.data.lastTapTimeoutFunc = setTimeout(function () {
// 单击事件
console.log("double click")
}, 200);
}
}
},
我们把tap
事件绑定到我们的函数
<view bindtap="tap"></view>
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/271