如何在javascript中找到捏合方向?

时间:2012-11-29 11:37:48

标签: javascript jquery touch

在我的网络应用程序中,我有一个div,它会根据收缩方向改变高度和宽度。例如,如果用户水平捏合,它将改变宽度,对于垂直捏,它将改变高度。

我正在使用手势事件

var scaleMe = $("#scaleMe");  
scaleMe[0].ongesturestart = function (e) {
    height = scaleMe .height();
}

scaleMe[0].ongesturechange = function (e) {
    e.preventDefault();                 
    var scaleheight = (scaleMe.height() * e.scale); 
    scaleMe.height(Math.min(Math.max(scaleheight, 50), 400));
}

有没有办法找到收缩方向?

1 个答案:

答案 0 :(得分:1)

如果我理解正确的话。

在“guesturestart”上你应该保存一个手势的捏坐标(或者你可以保存所有以获得更好的精度)

  

var allTouches = event.originalEvent.touches;

     

var prevTouchX = allTouches [0] .pageX;

     

var prevTouchY = allTouches [0] .pageY;

然后,在“guesturechange”上,您必须计算轴移动的长度

  

var allTouches = event.originalEvent.touches;

     

var touchX = allTouches [0] .pageX;

     

var touchY = allTouches [0] .pageY;

     

var propertyToChange = null;

     

if(Math.abs(touchX - prevTouchX)> Math.abs(touchY - prevTouchY))> {

     

propertyToChange ='width';

     

}其他{

     

propertyToChange ='height';

     

}

希望它有用。