5

私の Web アプリには、つまむ方向に基づいて高さと幅を変更する 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 に答える