var touchcount = '0'; //记录滑动次数
// var mybody = document.getElementsByTagName('body')[0];
var mybody = document.getElementById("toucharea");
var h = document.documentElement.clientHeight;
mybody.style.height = (h-100) + 'px';
//滑动处理
var startX, startY, moveEndX, moveEndY, X, Y;
mybody.addEventListener('touchstart', function(e) {
e.preventDefault();
startX = e.touches[0].pageX;
startY = e.touches[0].pageY;
}, false);
mybody.addEventListener('touchend', function(e) {
e.preventDefault();
moveEndX = e.changedTouches[0].pageX;
moveEndY = e.changedTouches[0].pageY;
X = moveEndX - startX;
Y = moveEndY - startY;
if ( Math.abs(Y) - Math.abs(X)>0 && Y < 0 ) {//向上滑动
if(touchcount=='0'){
first_touch();
touchcount = '1';
}
else if(touchcount=='1'){
secend_touch();
touchcount = '2';
}
else if(touchcount=='2'){
third_touch();
//最后一页解绑touch事件
document.removeEventListener("touchstart", self.pageLockHandler, false);
document.removeEventListener("touchend", self.pageLockHandler, false);
}
}
else if ( Math.abs(X) > Math.abs(Y) && X > 0 ) {
alert("向右");
}
else if ( Math.abs(X) > Math.abs(Y) && X < 0 ) {
alert("向左");
}
else if ( Math.abs(Y) > Math.abs(X) && Y > 0) {
alert("向下");
}
});
function pageLockHandler(e) {
e.preventDefault();
};
注意三个属性
touchstart 滑动开始位置
touchend 滑动结束位置
touchmove滑动时的位置,会根据手动滑动的位置改变。
所以建议加touchend 监听