अस्थायी संपर्क को अक्षम करें


20

मैं USC.js में Mapview को अस्थायी रूप से कैसे बढ़ा / चढ़ाकर निष्क्रिय कर सकता हूं, इसके लिए कई तरीके हैं लेकिन बिना किसी भाग्य के। इसे अस्थायी बनाना महत्वपूर्ण है और मुझे फिर से सक्षम करने के लिए विकल्प की आवश्यकता है।


किसी भी विचार कैसे सीएसएस के साथ यह करने के लिए? मुझे मीडिया क्वेरी का उपयोग करके मोबाइल पर ड्रैग करना अक्षम करना होगा। मैंने इसके ऊपर एक पारदर्शी परत स्थापित करने की कोशिश की, लेकिन यह उस परत के माध्यम से सही क्लिक करता है। मैंने सूचक-घटनाओं के साथ भी खेला लेकिन कोई भाग्य नहीं। उचित दृष्टिकोण -webkit-user-drag के उपयोग के माध्यम से सबसे अधिक संभावना है: कोई नहीं; लेकिन मैंने इसे लागू किया है कि हर तत्व को मैं पा सकता हूं और फिर भी कोई भाग्य नहीं। धन्यवाद।

इस सवाल का जवाब मैंने नीचे दिया है ।
— हयातबीरेलम

जवाबों:


33

आपका क्या करना है (मान लें कि आपका नक्शा कॉल है map)

map.dragging.disable();
map.touchZoom.disable();
map.doubleClickZoom.disable();
map.scrollWheelZoom.disable();
map.boxZoom.disable();
map.keyboard.disable();
if (map.tap) map.tap.disable();
document.getElementById('map').style.cursor='default';

इसे फिर से चालू करें

map.dragging.enable();
map.touchZoom.enable();
map.doubleClickZoom.enable();
map.scrollWheelZoom.enable();
map.boxZoom.enable();
map.keyboard.enable();
if (map.tap) map.tap.enable();
document.getElementById('map').style.cursor='grab';

2
आपका बहुत बहुत धन्यवाद। मुझे बहुत गलत लग रहा था _ सोचा कि ऐसा करने के लिए एक ही तरीका होना चाहिए।
— बर्नहार्ड

1
इस समाधान में कुछ समस्याएं हैं: माउस कर्सर अभी भी एक हाथ है। स्पर्श इशारों के साथ पृष्ठ स्क्रॉल करना मानचित्र पर संभव नहीं है। जब एक पॉपओवर का उद्घाटन मानचित्र को स्थानांतरित करता है तो यह कभी भी वापस पैन नहीं करेगा।
— netAction

@netAction, क्या आपके पास टच जेस्चर स्क्रॉलिंग इश्यू का हल है?
— क्रिस फ्रेमजेन

@ChrisFremgen: map.dragging.disable (); चाल है कि नक्शे स्क्रॉल इशारों लाने बंद कर देता है।
— नेटएक्शन

क्या केवल ज़ूम इन को अक्षम करने का एक तरीका है?
— होवार्ड।

5

यदि आप प्रत्येक हैंडलर को मैन्युअल रूप से अक्षम नहीं करना चाहते हैं, तो आप उन सभी को लूप कर सकते हैं और उन्हें अक्षम / सक्षम कर सकते हैं।

अक्षम

map._handlers.forEach(function(handler) {
    handler.disable();

});

सक्षम करें

map._handlers.forEach(function(handler) {
    handler.enable();

});

सावधान रहें कि गैर-सार्वजनिक संपत्तियों (_handlers) का उपयोग करने से आपके कोड में त्रुटि हो सकती है यहां तक ​​कि पत्रक पैच संस्करण परिवर्तनों पर भी अपरिवर्तित रहने की गारंटी नहीं है। सुविधा अनुरोध को पत्रक को प्रस्तुत किया जाना चाहिए;)
— लक्‍कलोक

0

मुझे लगता है, आप अपने नक्शे को एक सहायक कंटेनर के साथ लपेट सकते हैं और आप इसे सरल सीएसएस वर्ग की तरह अक्षम कर सकते हैं is-locked।

यहाँ मैं बात कर रहा हूँ:

.map-container {
  position: relative;
}

.map-container .map {
  position: relative;
  z-index: 1;
}

.map-container.is-locked:after {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  content: "";
  display: block;
}

मुझे उम्मीद है यह मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.