5

在我的网络应用程序中,我有一个 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));
}

有没有办法找到捏的方向?

4

1 回答 1

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 = '宽度';

} 别的 {

propertyToChange = '身高';

}

希望它有用。

于 2012-11-29T17:55:28.003 回答