我们使用 Onsen 和 angular-google-maps 的应用程序。如此处的示例所示,每次重新加载地图时,Google 地图信息窗口中的“x”都会缓慢漂移。
地图上的所有窗口第一次在相同、正确的位置打开时带有“x”。关闭地图页面popPage()
并打开地图pushPage()
会导致“x”向上漂移并向右移动 8 像素。下面是生成的?并放置在我放入<ui-gmap-window>
标签的内容下方的 DOM 中。
<div style="width: 19.5px; height: 19.5px; overflow: hidden; position: absolute; opacity: 0.7; transform: translateZ(0px); right: 15px; top: 12px; z-index: 10000;">
<img src="http://maps.gstatic.com/mapfiles/api-3/images/mapcnt3.png" draggable="false" style="position: absolute; left: -3px; top: -504px; width: 88.5px; height: 738px; -webkit-user-select: none; border: 0px; padding: 0px; margin: 0px;">
</div>
返回并重新打开:
<div style="width: 19.5px; height: 19.5px; overflow: hidden; position: absolute; opacity: 0.7; transform: translateZ(0px); right: 7px; top: 4px; z-index: 10000;">
<img src="http://maps.gstatic.com/mapfiles/api-3/images/mapcnt3.png" draggable="false" style="position: absolute; left: -3px; top: -504px; width: 88.5px; height: 738px; -webkit-user-select: none; border: 0px; padding: 0px; margin: 0px;">
</div>
如何确定导致这种漂移的原因?
2015-01-22更新:
我目前有一个解决方法。
function fixInfoWindow(){
$timeout(function(){
$(".gm-style-iw").each(function(){
if(this.parentNode.style.visibility != "hidden" && this.nextSibling != null){
this.nextSibling.style.right = "10px";
this.nextSibling.style.top = "8px";
this.nextSibling.nextSibling.style.right = "3px";
this.nextSibling.nextSibling.style.top = "1px";
}
});
});
}
这会将“x”和按下时关闭窗口的隐藏项移动到正确的位置。我在设置每个 InfoWindow 可见的函数的末尾调用此函数。
我的示例也可以在打开设备仿真的 Chrome 中重现。
我仍然没有找到漂移的原因。