在 touchstart 上,将触摸事件的 Y 位置存储在变量中。
在 touchend 上,将触摸事件的 Y 位置与您存储的 Y 位置进行比较。
如果两者之间的差异小于 X,请执行您的弹出功能。
如果两者之间的距离大于 X,则表示它是一个卷轴,不要做任何事情。
Javascript
var startY,endY, deltaY;
$('.ImageLink')[0].addEventListener('touchstart', handleTouchStart, false);
$('.ImageLink')[0].addEventListener('touchmove', handleTouchMove, false);
$('.ImageLink')[0].addEventListener('touchend', handleTouchEnd, false);
function handleTouchStart(e) {
if (e.touches.length == 1) {
var touch = e.touches[0];
startY = touch.pageY;
deltaY = 0;
}
}
function handleTouchMove(e) {
if (e.touches.length == 1) {
var touch = e.touches[0];
endY = touch.pageY;
deltaY = endY - startY;
}
}
function handleTouchEnd(e) {
if (e.touches.length == 0) { // User just took last finger off screen
if (Math.abs(deltaY) < 40) { // User didn't move finger much up or down
alert('Popup code here')
} else {
alert('Do nothing')
}
}
}
演示:http: //jsfiddle.net/4hmhs/