我有一个谷歌地图api页面,不返回从Firefox中的鼠标事件正确的坐标时,地图div不在浏览器窗口的左上角(0,0) 。如果我在地图div上放置任何css填充或边距,Google地图中的mouseevent原点仍然从浏览器窗口的左上角开始,而不是从地图div开始。 mouseevent在IE中正常工作& Chrome返回正确的纬度/经度,但不是Firefox。任何人有任何更正的建议?谷歌地图mouseevent在Firefox显示不正确的坐标
我在http://jsfiddle.net/fNPvf/15426/上创建了一个非常简单的示例,它显示了鼠标在地图上移动时的坐标。您可以在地图图像的左上角看到坐标应为0,0,但Firefox显示为50,50。 infowindow显示地图中心的正确纬度/经度,当您将鼠标移动到该点时,您可以看到坐标的差异(50像素左移至左上角)。
<html>
<head>
<meta charset="utf-8">
<style>
body {font:12px arial; margin:0px}
#map {
height:400px;
width:400px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script>
var map;
coord = new google.maps.LatLng(38.939201, -94.747640)
function initialize() {
var mapOptions = {
zoom: 16,
center: coord
};
map = new google.maps.Map(document.getElementById('map'), mapOptions);
google.maps.event.trigger(map, 'resize');
var coordInfoWindow = new google.maps.InfoWindow();
coordInfoWindow.setContent('38.939201, -94.747640');
coordInfoWindow.setPosition(coord);
coordInfoWindow.open(map);
google.maps.event.addListener(map, "mousemove", function (event) {
document.getElementById("footer").innerHTML = "Mouse X Y:" + event.pixel.toString() + " - Lat Lng:" + event.latLng.toString() + "<br />"
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map" style="margin-left:50px;margin-top:50px;"></div>
<div id="footer" style="margin-left:50px; padding:10px;"></div>
</body>
</html>
FF中的作品正确无误(38.0.5) –
太棒了,谢谢。看起来像v38的Firefox版本更改问题到39. – user4974882
几天前在Bugzilla中添加了此错误:https://bugzilla.mozilla.org/show_bug.cgi?id = 1180744 – Marc