1.声明变量
let touchID = null;
2.判断单点触控
function processEvent(event) {
if (event.changedTouches) {
var currentTouch = null;
if (event.type == "touchstart") {
if (this.touchID == null) {
this.touchID = event.changedTouches[0].identifier;
currentTouch = event.changedTouches[0];
} else {
return false;
}
} else if (event.type == "touchmove") {
for (let i = 0; i < event.changedTouches.length; i++) {
if (event.changedTouches[i].identifier == this.touchID) {
currentTouch = event.changedTouches[i];
break;
}
}
if (!currentTouch) {
return false;
}
} else if (event.type == "touchend" || event.type == "touchcancel") {
for (let i = 0; i < event.changedTouches.length; i++) {
if (event.changedTouches[i].identifier == this.touchID) {
currentTouch = event.changedTouches[i];
break;
}
}
if (currentTouch) {
this.touchID = null;
} else {
return false;
}
}
return true;
}
return false;
}
3.绑定事件
obj.addEventListener('touchStart', (e) => {
var flag = processEvent(e);
if(!flag) {
return;
}
});
obj.addEventListener('touchMove', (e) => {
var flag = processEvent(e);
if(!flag) {
return;
}
});
obj.addEventListener('touchEnd', (e) => {
var flag = processEvent(e);
if(!flag) {
return;
}
});
obj.addEventListener('touchCancel', (e) => {
var flag = processEvent(e);
if(!flag) {
return;
}
});