【发布时间】:2010-12-10 02:23:58
【问题描述】:
任何人都知道如何在 Javascript 中为图像(不是地图)添加标记?
理想情况下,我想要一个行为类似于向地图添加标记的处理程序 - 即 onclick 会使标记显示在被点击的点上,并返回被点击点的 x/y 像素坐标.
这可能吗?
干杯 理查德
【问题讨论】:
标签: javascript image events onclick marker
任何人都知道如何在 Javascript 中为图像(不是地图)添加标记?
理想情况下,我想要一个行为类似于向地图添加标记的处理程序 - 即 onclick 会使标记显示在被点击的点上,并返回被点击点的 x/y 像素坐标.
这可能吗?
干杯 理查德
【问题讨论】:
标签: javascript image events onclick marker
是的,有可能。
虽然只使用 javascript 完全可行,但我会使用某种库,例如 JQuery。
方法是使用带有标记的 img 元素,然后将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>
【讨论】: