2012-11-29 8 views
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)); 
} 

वहाँ किसी भी तरह से चुटकी दिशा खोजने के लिए है का उपयोग कर रहा हूँ?

+1

तो क्या आप स्केल नहीं चाहते हैं? स्केलिंग के साथ मेरा मतलब है कि ऊंचाई और चौड़ाई रिश्तेदार बनी हुई है। यदि आपका आकार बदलना है, तो चुटकी इशारा का उपयोग न करें, क्योंकि उपयोगकर्ता स्केल का आकार नहीं लेता है। –

उत्तर

1

अगर मैं सही ढंग से समझ में आ ..

पर "guesturestart" तुम्हें बचा जाना चाहिए इशारों में से एक के निर्देशांक पिंच (या आप बेहतर परिशुद्धता के लिए सभी को बचा सकता है)

वर allTouches = event.originalEvent। छूता है;

var prevTouchX = allTouches [0] .pageX;

var prevTouchY = allTouches [0] .pageY;

फिर, "guesturechange" पर तुम, गणना करने के लिए है क्या अक्ष आंदोलन था अब

वर allTouches = event.originalEvent.touches;

var touchX = allTouches [0] .pageX;

var touchY = allTouches [0] .pageY;

var propertyToChange = null;

अगर (Math.abs (touchX - prevTouchX)> Math.abs (भावुक - prevTouchY))> {

propertyToChange = 'चौड़ाई';

} else {

propertyToChange = 'ऊंचाई';

}

आशा है कि यह उपयोगी था।

संबंधित मुद्दे