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

Bal*_*an웃 5 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));
}
Run Code Online (Sandbox Code Playgroud)

有没有办法找到捏方向?

bon*_*nez 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 属性更改 = null;

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

propertyToChange = '宽度';

} 别的 {

propertyToChange = '高度';

}

希望它有用。