【发布时间】:2013-07-10 09:41:56
【问题描述】:
我需要检测左/右滑动并做出反应,但希望用户能够滚动相同的元素,因此只要他以最大的上/下移动仅左/右移动手指X像素,它不应该滚动,但是当他超过X时,它应该滚动。
所以我做的是:
var startX, startY, $this = $(this);
function touchmove(event) {
var touches = event.originalEvent.touches;
if (touches && touches.length) {
var deltaX = touches[0].pageX - startX;
var deltaY = touches[0].pageY - startY;
if (Math.abs(deltaY) > 50) {
$this.html('X: ' + deltaX + '<br> Y: ' + deltaY + '<br>TRUE');
$this.unbind('touchmove', touchmove);
return true;
} else {
$this.html('X: ' + deltaX + '<br> Y: ' + deltaY);
event.preventDefault();
}
}
}
function touchstart(event) {
var touches = event.originalEvent.touches;
if (touches && touches.length) {
startX = touches[0].pageX;
startY = touches[0].pageY;
$this.bind('touchmove', touchmove);
}
//event.preventDefault();
}
但我没有恢复在“if”情况下滚动的能力......
感谢任何提示。
【问题讨论】:
-
感谢@T.J.Crowder,添加了它
-
@Raphael:你在任何地方声明它们吗?
-
是的,将其添加到顶部 @T.J.Crowder
标签: javascript jquery touch swipe