जब एक HTML पेज में एक नक्शा होता है, और उपयोगकर्ता अपने माउस व्हील का उपयोग करते हुए पृष्ठ को नीचे स्क्रॉल करता है, जब उपयोगकर्ता का माउस मानचित्र पर गुजरता है तो पृष्ठ स्क्रॉल करना बंद कर देगा जबकि मानचित्र स्वयं पैन होगा। डेमो 1 देखें ।
मैं आर्कजीस सर्वर जेएस एपीआई 3.x का उपयोग करके Google मैप्स के लिए एक सरल प्रयोज्य चाल पर विस्तृत व्यवहार का अनुकरण करना चाहूंगा ।
यही है, पृष्ठ को तब तक स्क्रॉल करना चाहिए जब तक कि उपयोगकर्ता मानचित्र के भीतर स्पष्ट रूप से नहीं हटता है, जिस स्थिति में नक्शा पैन करना चाहिए ।
डेमो 2 में व्यवहार लगभग होता है , जहां पेज आपके माउस के नक्शे पर होने पर भी स्क्रॉल करता है।
map.on("load", function(){
// Disable navigation by default, so scrolling the page doesn't scroll the map
map.disableMapNavigation();
// When the user tries to pan the map, allow this
map.on('mouse-drag-start', function(){
map.enableMapNavigation();
});
// Restore the no-scroll behaviour when the mouse leaves the map
map.on('mouse-out', function(){
map.disableMapNavigation();
});
});
हालाँकि, मैप पैन तब तक सक्षम नहीं होता जब तक कि आप मैप के भीतर एक बार क्लिक नहीं करते, माउस बटन छोड़ दें और फिर पैन। क्या ब्लॉग पोस्ट में Google मानचित्र के साथ दिखाए गए सहज प्रभाव को प्राप्त करना संभव है?
मैंने और घटनाओं की कोशिश की mouse-drag
, लेकिन व्यवहार सभी घटनाओं के लिए समान है।mouse-drag-start
mouse-down
enableMapNavigation
को फिर से शुरू करने के तुरंत बाद कोशिश कर सकते हैंmouse-drag-start
। मुझे घटनाओं के उत्सर्जन के लिए dojo वर्ग के रूप में dojotoolkit.org/reference-guide/1.10/dojo/Evented.html मिला । तो आप मानचित्र पर ड्रैग (या क्लिक) करेंगे -> मैप नेविगेशन सक्षम करें -> एक ही फ़ंक्शन में ड्रैग ईवेंट को इनवॉइस करें (हो सकता है कि यह केवल इनवॉइस करने में सक्षम हो या परमेस की आवश्यकता हो) -> अपने व्यवसाय को ड्रैग करने के बारे में जाएं। यह नीचे माउस को लेने और उसके साथ खींचने में सक्षम हो सकता है। बस उन घटनाओं को अलग-अलग क्रमों में आज़माने का एक कॉम्बो हो सकता है, आदि