0

我们使用 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 中重现。

我仍然没有找到漂移的原因。

4

0 回答 0