2013-02-13 28 views
10

मैं जावास्क्रिप्ट इशारा पुस्तकालयों के साथ प्रयोग कर रहा हूं। वे सभी आईपैड मिनी के साथ बहुत अच्छा काम करते हैं, हालांकि, जब मैं अपने सैमसंग गैलेक्सी टैब (जीटी-पी 7510, एंड्रॉइड 4.04) पर कोशिश करता हूं, तो परिणाम सबसे अच्छे होते हैं।क्या जावास्क्रिप्ट जेस्चर लाइब्रेरी है जो सैमसंग गैलेक्सी टैब के साथ काम करती है?

मुझे प्राप्त होने वाले सर्वोत्तम परिणाम पोर्ट्रेट मोड में हैं। लैंडस्केप मोड में, वस्तुतः कुछ भी काम नहीं करता है।

मैं, की कोशिश की है, दूसरों के बीच, निम्नलिखित पुस्तकालयों, जो सभी के मैं इस पोस्ट से मिला: http://www.queness.com/post/11755/11-multi-touch-and-touch-events-javascript-libraries

  • Hammer.js
  • quo.js
  • भावुक
  • doubletap
  • jgestures
  • टचस्वाइप

टचस्वाइप सर्वश्रेष्ठ काम करता था, लेकिन बाकी सभी वास्तव में गेंद नहीं खेलते थे।

http://eightmedia.github.com/hammer.js/

तो, किसी को भी किसी भी तरह से मैं स्वाइप जेस्चर मेरी आकाशगंगा पर अच्छा खेलने के लिए प्राप्त कर सकते हैं के बारे में पता है:

हथौड़ा पेज एक डेमो है, जो आईपैड पर ठीक काम करता है, लेकिन नहीं एंड्रॉयड है ?

मैंने क्विर्कमोड पेज को देखा है जो पिछले स्टैक ओवरफ्लो प्रश्न की ओर इशारा करता है, लेकिन यह पुराना था और अब मैं देख सकता था, जो मैं देख सकता था। इसके अलावा, यह वास्तव में किसी भी पुस्तकालय का उल्लेख नहीं किया था।

+0

क्या आप पहले से ही जावास्क्रिप्ट लाइब्रेरी के साथ काम कर रहे हैं? अभी मैं एक jQuery यूआई प्रोजेक्ट पर काम कर रहा हूं और इशारा क्षमता जोड़ने के लिए मैं «jQuery UI टच पंच» का उपयोग करता हूं जो आईपैड और एंड्रॉइड के साथ बहुत अच्छी तरह से खेलता है। http://touchpunch.furf.com/ – Cholesterol

+0

मैं नए सेन्चा ढांचे से बहुत डर गया हूं http://www.sencha.com/products/touch यह मूल अभी भी एक्सएस जेएस है ... – Preexo

+0

मुझे यह सवाल लगता है बंद होने की संभावना है: देखें [क्यों "खरीदारी सूची" प्रश्न खराब हैं?] (http://meta.stackexchange.com/questions/158809/why-are-shopping-list-questions-bad/158810#158810) – Cholesterol

उत्तर

2

मैं इस एक के साथ अच्छी किस्मत थी:

https://github.com/HotStudio/touchy

यह लंबे समय से प्रेस, चुटकी है घुमाने के लिए, और इशारों स्वाइप करें, और कोड अनुकूलित करने के लिए काफी आसान है।

ध्यान दें कि जेस्चर के संयोजनों को संभालने की आवश्यकता है - उदाहरण के लिए, एक स्वाइप लगभग हमेशा एक लंबा स्पर्श भी ट्रिगर करेगा, इसलिए आपको झंडे सेट करना होगा या अन्यथा इसे संभालना होगा।

+0

इसके अलावा, यदि आपने पहले से ही इसे आजमाया नहीं है, तो रेपो में विकास शाखा देखें - इसमें ऐसे अपडेट हैं जो मुझे – NoelHunter

+0

+1 को वास्तविक उत्तर के लिए मदद करते हैं! मैं आज रात प्रयोग करूँगा और आपको बताऊंगा कि मैं कैसे चल रहा हूं। – Puzbie

+0

हां! आखिरकार! वह वास्तव में काम करता है। सही दिशा में मुझे इंगित करने के लिए आपको बहुत बहुत धन्यवाद। अगर मैं अभिविन्यास स्विच करता हूं तो यह भी काम करता है। – Puzbie

1

यहां एक कोडपेन इशारा तुलना उपकरण है। http://jsfiddle.net/icoxfog417/uQBvP/

हम व्यापक काम के बाद हैमर.जेएस छोड़कर क्वॉ में चले गए जो हमें ठीक मिल रहा है। हालात बदल सकते हैं और अब अलग हो सकते हैं।

document.head.insertAdjacentHTML('beforeEnd', '<meta name="viewport" content="target-densitydpi=device-dpi,width=device-width,initial-scale=1.0" />'); 

$(function(){ 
    //initialization 
    $(".detector").bind("click touchstart",function(e){ 
    $(".detector").removeClass("selected"); 
    $(this).addClass("selected"); 

    unbindLibrary(); 
    bindLibrary($(this).prop("id")); 
    }); 

    //bind library to gesture pad 
    bindLibrary = function(id){ 
    var $pad = $("#gesture-pad"); 
    var events = []; 
    var eventStr = ""; 
    $("#" + id + "List li").each(function(){ 
     events.push($(this).text()); 
    }) 
    //make target event list from each library's gestureList 
    eventStr = events.join(" "); 

    switch(id){ 
     case "hammer": 
     hammer = Hammer($pad.get(0), { 
      prevent_default: true 
     }) 
     .on(eventStr, logEvent); 
     break; 
     case "quojs": 
     for(var i = 0;i<events.length;i++){ 
      $$("#gesture-pad").on(events[i], logEvent); 
     } 
     $$("#gesture-pad").on("touchstart",function(e){ 
      e.preventDefault(); 
     }); 
     break; 
     case "touchSwipe": 
     var options = {}; 
     var touchSwipeHandler = function(name){ 
      if(name.indexOf("pinch") < 0){ 
      return function(event, distance, duration, fingerCount){ 
        var e = {}; e["type"] = name; logEvent(e);   
        }; 
      }else{ 
      return function(e, direction, distance, d, f, pinchZoom){ 
        var e = {}; e["type"] = name; logEvent(e);   
        }; 
      } 
     }; 

     for(var i = 0;i<events.length;i++){ 
      options[events[i]] = new touchSwipeHandler(events[i]); 
     } 
     $pad.swipe(options); 
     break; 
     case "touchy" : 
     var handler = function(name){ 
      return function(event, phase, $target, data){ 
        var e = {}; e["type"] = name; logEvent(e); 
        } 
     } 
     for(var i = 0;i<events.length;i++){ 
      $pad.bind(events[i],new handler(events[i])); 
     } 
     break;  
    } 
    } 

    //unbind library from gesture pad 
    unbindLibrary = function(){ 
    var element = $("#gesture-pad").clone(); 
    $("#gesture-pad").replaceWith(element); 
    $(".gesturelist .selected").removeClass("selected"); 
    } 

    //log detected gesture 
    logEvent = function(e){ 
    $("#detected").text(e.type); 
    var selected = $(".detector.selected").prop("id"); 
    $("#" + selected + "List li").each(function(){ 
     if($(this).text() == e.type){ 
      $(this).addClass("selected"); 
`enter code here`  }; 
    })   
    return false; 
    } 

    $(".detector").first().addClass("selected"); 
    bindLibrary($(".detector.selected").prop("id")); 

}) 
1

मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन मैं कई पुस्तकालयों की कोशिश की और उनमें से किसी के साथ खुश नहीं था, इसलिए मेरी अपनी गिर गयी है। यह एमआईटी

http://aerik.github.io/GestureListener/example.htm

पर लाइसेंस प्राप्त है और

https://github.com/aerik/GestureListener.js

एक परीक्षण/डेमो पृष्ठ के साथ

पर उपलब्ध है तो मुझे इसके नियमित उपयोग अपने गैलेक्सी एस 4 फोन, iPads की एक जोड़ी है, और कई Windows 8 पर टचस्क्रीन डिवाइस। हम इसे काम पर उत्पादन सॉफ्टवेयर के लिए उपयोग कर रहे हैं।

बग रिपोर्ट (उदाहरणों के साथ) आपका स्वागत है।

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

  • कोई संबंधित समस्या नहीं^_^