2009-10-26 9 views
7

누구나 Javascript의 이미지가 아닌 (지도가 아닌) 마커를 추가 할 수 있습니다.자바 스크립트에서 이미지에 마커를 추가 하시겠습니까?

이상적으로지도에 마커를 추가하는 것과 비슷하게 작동하는 핸들러가 필요합니다. 예를 들어 onclick은 클릭 한 지점에 표식을 표시하고 x/y 픽셀 좌표를 반환합니다. 클릭 함.

이것이 가능합니까?

건배 리처드

답변

9

네, 가능합니다.

그냥 자바 스크립트로 할 수 있지만, JQuery과 같은 라이브러리를 사용합니다.

마커에 img-element가있는 것입니다. 그러면 click -handler를 "maps"로 사용할 이미지에 추가하면됩니다. 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

그리 빠르지는 않습니다 ... pageX와 pageY는 페이지의 왼쪽 상단 모서리를 기준으로 한 픽셀 위치를 나타냅니다. 이미지 안에 픽셀 위치를 가져 오는 방법이 있습니까? 그렇다면 이미지 모서리의 픽셀 위치를 알아 내고 빼낼 수 있다고 생각합니다. 그러나 조금 지저분 해 보입니다. 감사합니다. . – Richard

+0

좌표를 지정하는 다양한 비표준 속성이 있지만 브라우저별로 매우 다양합니다. 당신이 말했듯이 나는 그 이미지의 위치를 ​​뺄 것입니다. –

관련 문제