2012-11-29 11 views
5

Nella mia web app ho un div che cambierà l'altezza e la larghezza in base alla direzione di pizzicamento. per esempio se l'utente pizzica orizzontalmente, cambierà larghezza, per pizzico verticale cambierà l'altezza.Come trovare la direzione del pizzico in javascript?

Sto usando gli eventi gesto

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)); 
} 

C'è un modo per trovare la direzione presa?

+1

Quindi non vuoi la scala? Con il ridimensionamento intendo l'altezza e la larghezza rimangono relative. Se intendi ridimensionare, non usare il gesto di pizzicamento, perché l'utente si aspetta una scala, non un ridimensionamento. –

risposta

1

se ho capito bene ..

su "guesturestart" si dovrebbe salvare pizzico coordinate di uno dei gesti (o è possibile salvare tutti per una migliore precisione)

var = allTouches event.originalEvent. tocchi;

var prevTouchX = allTouches [0] .pageX;

var prevTouchY = allTouches [0] .pageY;

poi, su "guesturechange" si deve calcolare, in quanto movimento dell'asse era più

var = allTouches event.originalEvent.touches;

var touchX = allTouches [0] .pageX;

var touchY = allTouches [0] .pageY;

var propertyToChange = null;

se (Math.abs (touchX - prevTouchX)> Math.abs (permaloso - prevTouchY))> {

propertyToChange = 'width';

} else {

propertyToChange = 'altezza';

}

Speranza è stato utile.

Problemi correlati