Да, это возможно.
Хотя это полностью выполнимо с помощью только javascript, я бы использовал какую-то библиотеку, например, JQuery.
Подход должен состоять в том, чтобы иметь img-элемент с вашим маркером, а затем добавить обработчик click к изображению, которое вы хотите использовать в качестве своей «карты», которое 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>
Edit: И это вполне возможно без 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>
Genius. Работает отлично, спасибо! – Richard
Не так быстро ... pageX и pageY дайте мне положение пикселя относительно верхнего левого угла страницы. Есть ли способ получить положение пикселя внутри изображения? Если нет, то, я думаю, я могу определить положение пикселя в углу изображения и вычесть, но это кажется немного грязным. Спасибо. – Richard
Существует множество различных нестандартизированных атрибутов, которые определяют координаты, но они, по-видимому, очень специфичны для браузера. Чтобы этого избежать, я бы вычитал позицию изображения, как вы сказали. –