2017-08-31 16 views
5

मैं http://leafletjs.com/ उपयोग कर रहा हूँ पर दो अंगुलियों से नक्शे को स्थानांतरित करने के लिए स्क्रॉल ... यह केवल के लिए संभव है:Leaflet.js: Ctrl + ज़ूम और मोबाइल

  1. ctrl उपयोग + ज़ूम करने के लिए स्क्रॉल मोबाइल/टेबलेट

नक्शे पर

  • ले जाएँ नक्शा दो उंगलियों के साथ ... इसलिए समान क्या गूगल मैप्स करता है?

    // Leaflet Maps 
    var contactmap = L.map('contact-map', { 
         center: [41.3947688, 2.0787279], 
         zoom: 15, 
         scrollWheelZoom: false 
        }); 
    
  • +0

    https://gis.stackexchange.com/questions/111887/leaflet-mouse-wheel-zoom-only-after-click-on-map अपने ctrl काफ़ी मिलती-जुलती समाधान + – SurisDziugas

    उत्तर

    4

    मैं अपने दूसरे समस्या को हल करने में कामयाब रहे: टिप्पणियों के साथ ...

    अब तक मेरी सेटअप thats।

    मैंने ::after छद्म चयनकर्ता का उपयोग कर संदेश प्रदर्शित करने के लिए सीएसएस का उपयोग किया।

    #map { 
        &.swiping::after { 
        content: 'Use two fingers to move the map'; 
        } 
    } 
    

    और स्पर्श घटनाओं को पकड़ने के लिए जावास्क्रिप्ट।

    mapEl.addEventListener("touchstart", onTwoFingerDrag); 
    mapEl.addEventListener("touchend", onTwoFingerDrag); 
    
    function onTwoFingerDrag (e) { 
        if (e.type === 'touchstart' && e.touches.length === 1) { 
        e.currentTarget.classList.add('swiping') 
        } else { 
        e.currentTarget.classList.remove('swiping') 
        } 
    } 
    

    यह जाँच करता है, तो प्रकार एक touchevent है और अगर आप, 1 उंगली उपयोग कर रहे हैं तो यह संदेश के साथ नक्शा करने के लिए वर्ग कहते हैं। यदि आप एक से अधिक उंगली का उपयोग करते हैं तो यह कक्षा को हटा देता है।

    Working demo मैं आपको मोबाइल डिवाइस का उपयोग करने का सुझाव देता हूं।

    Code pen from the demo

    +0

    मन स्क्रॉल कि आपको एक-उंगली पैनिंग को रोकने के लिए map.dragging = false सेट करना चाहिए – flightwusel

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