1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
$("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; console.log(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"); } }); |
现在在做一个赛程页面,选择时间,相应的结果也要更改,采用了swiper(左右切换),滚动到底部,要自动切换到下一页,需要获取触摸事件,本来想采用上面的方法,但是不太好用,后来在swiper自己的onTouchMove相关方法中进行了判断,基本完成,随后会把这个效果放到git……