2009-10-26 6 views
7

Bất cứ ai cũng biết cách tôi có thể thêm điểm đánh dấu vào hình ảnh (không phải bản đồ) trong Javascript? Lý tưởng nhất là tôi muốn một trình xử lý giống như việc thêm một điểm đánh dấu vào bản đồ - tức là onclick làm cho một điểm đánh dấu được hiển thị tại điểm được nhấp và trả về tọa độ pixel x/y của điểm đã được đánh dấu. đã nhấp.Thêm điểm đánh dấu vào một hình ảnh trong javascript?

Điều này có khả thi không?

Chúc mừng Richard

Trả lời

9

Có, có thể.

Mặc dù hoàn toàn có thể thực hiện được chỉ với javascript, tôi sẽ sử dụng một số loại thư viện như JQuery.

Cách tiếp cận sẽ là có phần tử img với điểm đánh dấu của bạn và sau đó thêm click -hình ảnh vào hình ảnh bạn muốn sử dụng làm "bản đồ" của mình, trong đó moves điểm đánh dấu của bạn.

Dưới đây là một ví dụ chưa được kiểm tra:

<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> 

Edit: Và điều này là hoàn toàn có thể mà không JQuery quá, tất nhiên. Dưới đây là một ví dụ về mã như vậy.

<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

Genius. Hoạt động hoàn hảo, cảm ơn! – Richard

+0

Không quá nhanh ... pageX và pageY cho tôi vị trí pixel tương ứng với góc trên cùng bên trái của trang. Có cách nào để lấy vị trí pixel trong hình ảnh không? Nếu không thì tôi đoán tôi có thể tìm ra vị trí điểm ảnh của góc của hình ảnh và trừ đi, nhưng có vẻ hơi lộn xộn một chút. Cảm ơn. – Richard

+0

Có một loạt các thuộc tính không chuẩn hóa khác nhau xác định tọa độ, nhưng chúng dường như rất cụ thể cho từng trình duyệt. Để tránh điều đó tôi sẽ trừ vị trí của hình ảnh như bạn đã nói. –