var posXS,posXE,posYS,posYE = 0;
var defPosMin = 20;//인식 최소거리(px)
$.fn.touchFixed = function(option,callback){
this.bind("touchstart",function(e){
posXS = e.touches[0].screenX;
posYS = e.touches[0].screenY;
}).bind("touchend",function(e){
posXE = e.changedTouches[0].screenX;
posYE = e.changedTouches[0].screenY;
if(touchPosProc(posXS,posXE,posYS,posYE,option.px)==option.pos){
callback.call(this);
}
});
}
function touchPosProc(xs,xe,ys,ye,px){
var gapX = Math.abs(xs-xe);
var gapY = Math.abs(ys-ye);
var result = "none";
if(px===undefined){px=defPosMin;}
if(px<gapX || px<gapY){
if(gapX > gapY){
if(xs>xe){
result = "left";
}else if(xs<xe){
result = "right";
}
}else if(gapX < gapY){
if(ys>ye){
result = "up";
}else if(ys<ye){
result = "down";
}
}
}
return result;
}
현재 소스구요
터치 시작점과 끝점으로 어느쪽으로 드래그했는지 캐치해서 동작하는 스크립트입니다.
동작은 문제가 없는데 예외상황이있습니다.
한손가락으로 터치했을때만 생각을해서 두손가락으로 줌땡길때 생각을 못했네요...
interval걸어서 다음껄 지연시켜볼까 했는데 도저히 방법이 떠오르지 않네요...
조언좀부탁드립니다.