上篇博客我描述了手机的touch事件有touchstart,touchmove,touchend事件,然后在实际开发中,我们常常需要判断手指是左滑还是右滑了,最近我就接到了这个需求,左右滑切换数据,那么应该怎么做呢?
大概的思路是:
1.获取touchstart的开始的X坐标和Y坐标:
x1=event.targetTouches[0].pageX;
y1=event.targetTouches[0].pageY;
2.获取touchmove时的X、Y坐标;
x2 = event.targetTouches[0].pageX;
y2 = event.targetTouches[0].pageY;
3.在touchend时判断滑动方向
var changeY = x2-x1;
var changeX = y2-y1;
if(Math.abs(changeX)>Math.abs(changeY)&&Math.abs(changeY)>5){
//左右事件
if(changeX > 0) {
alert("右滑");
}else{
alert("左滑");
}
}else if(Math.abs(changeY)>Math.abs(changeX)&&Math.abs(changeX)>defaults.x){
//上下事件
if(changeY > 0) {
alert("下滑");
}else{
alert("上滑");
}
}else{
alert("点击");
}