2009-10-26 14 views
7

कोई भी जानता है कि मैं जावास्क्रिप्ट में किसी छवि (मानचित्र नहीं) में मार्कर कैसे जोड़ सकता हूं?जावास्क्रिप्ट में किसी छवि में मार्कर जोड़ें?

आदर्श रूप से मैं एक हैंडलर चाहता हूं जो एक मानचित्र में मार्कर जोड़ने की तरह व्यवहार करता है - यानी ऑनक्लिक उस बिंदु पर प्रदर्शित होने के लिए मार्कर का कारण बनता है, और उस बिंदु के x/y पिक्सेल निर्देशांक देता है क्लिक किया।

क्या यह संभव है?

चीयर्स रिचर्ड

उत्तर

9

हाँ, यह संभव है।

हालांकि यह सिर्फ जावास्क्रिप्ट के साथ पूरी तरह से करने योग्य है, लेकिन मैं JQuery जैसे किसी प्रकार की लाइब्रेरी का उपयोग करूंगा।

दृष्टिकोण आपके मार्कर के साथ एक आईएमजी-तत्व होना होगा, और फिर उस छवि को click -handler जोड़ें जिसे आप अपने "मानचित्र" के रूप में उपयोग करना चाहते हैं, moves आपका मार्कर जहां तत्व क्लिक किया गया था।

<img src="marker.png" id="marker" style="display: none; position: absolute;" /> 
<img src="map.png" id="map" /> 

<script type="text/javascript"> 
$('#map').click(function(e) 
{ 
    $('#marker').css('left', e.pageX).css('top', e.pageY).show(); 
    // Position of the marker is now e.pageX, e.pageY 
    // ... which corresponds to where the click was. 
}); 
</script> 

संपादित करें::

यहाँ एक अपरीक्षित उदाहरण है और यह भी JQuery के बिना पूरी तरह से संभव है, निश्चित रूप से। नीचे बस एक कोड-उदाहरण है।

<img src="marker.png" id="marker" style="display: none; position: absolute;" /> 
<img src="map.png" id="map" /> 

<script type="text/javascript"> 
document.getElementById('map').onclick = function(e) 
{ 
    with(document.getElementById('marker')) 
    { 
     style.left = e.pageX; 
     style.top = e.pageY; 
     style.display = 'block'; 
    } 
    // Here you forward the coordinates e.pageX, e.pageY 
    // ... to whatever function that needs it 
}; 
</script> 
+0

प्रतिभा। पूरी तरह से काम करता है, धन्यवाद! – Richard

+0

इतना तेज़ नहीं है ... पेजएक्स और पेजवाई मुझे पृष्ठ के ऊपरी बाएं कोने से संबंधित पिक्सेल स्थिति दें। क्या छवि के भीतर पिक्सेल स्थिति पाने का कोई तरीका है? यदि नहीं तो मुझे लगता है कि मैं छवि के कोने की पिक्सेल स्थिति को समझ सकता हूं और घटा सकता हूं, लेकिन यह थोड़ा गन्दा लगता है। धन्यवाद। – Richard

+0

विभिन्न गैर-मानकीकृत विशेषताओं का एक समूह है जो निर्देशांक निर्दिष्ट करता है, लेकिन वे बहुत ब्राउज़र-विशिष्ट प्रतीत होते हैं। इससे बचने के लिए, जैसा कि आपने कहा था, मैं छवि की स्थिति घटा दूंगा। –

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