直接看代码:
var windowHeight = $(window).height();
$("body").css("height", windowHeight);
var startX, startY, moveEndX, moveEndY, X, Y;
$("body").on("touchstart", function(e) {
e.preventDefault();
startX = e.originalEvent.changedTouches[0].pageX, startY = e.originalEvent.changedTouches[0].pageY;
});
$("body").on("touchmove", function(e) {
e.preventDefault();
moveEndX = e.originalEvent.changedTouches[0].pageX, moveEndY = e.originalEvent.changedTouches[0].pageY, X = moveEndX - startX, Y = moveEndY - startY;
if (Math.abs(X) > Math.abs(Y) && X > 0) {
console.log("left to right");
} else if (Math.abs(X) > Math.abs(Y) && X < 0) {
console.log("right to left");
} else if (Math.abs(Y) > Math.abs(X) && Y > 0) {
console.log("top to bottom");
} else if (Math.abs(Y) > Math.abs(X) && Y < 0) {
console.log("bottom to top");
} else {
console.log("just touch");
}
});
报这个错
[Intervention] Ignored attempt to cancel a touchmove event with cancelable=false, for example because scrolling is in progress and cannot be interrupted
如何解决
使用css3
touch-action: none;
touch-action :当你触摸并按住触摸目标时候,禁止或显示系统默认菜单。
touch-action取值有一下两种
none:系统默认菜单被禁用
default:系统默认菜单不被禁用