我有一张地球地图,我想将标记设置在用户点击的位置(如谷歌地图上)。
<div class='map_wrapper'>
<div class='marker'></div>
<img src="images/map.jpg" alt="" usemap="#world_map" />
<map name="map_coords" id='world_map'>
<area shape="poly" class='europe' name="Europe" coords="468,186,468,191,463,194,460,199,458,205" />
</map>
</div>
<style type='text/css'>
.map_wrapper { position:relative; }
.marker {
position:absolute;
width:25px;
height:34px;
background:url(../images/marker.png) top center no-repeat;
z-index:2;
}
</style>
和 javascript
$(document).ready(function(){
$('.map_wrapper area').click(function(ev){
var offset = $(this).offset();
var mObj = $('.marker');
mObj.css({
'margin-left' : (ev.clientX - offset.left - (mObj.width()/2) ) + 'px',
'margin-top' : (ev.clientY - offset.top) + 'px'
});
});
});
为标记应用 margin-left 是有效的,我遇到了 Y(垂直)对齐的问题。我不知道如何从 margin-top 计算 px。