我正在尝试在Google Maps API v3中显示一个叠加层,使其显示在所有标记上方。但似乎Google API始终将我的叠加层的Z-index优先级设置为最低。我发现的唯一解决方案是遍历DOM树并手动将z-index设置为更高的值。解决方案差。

我将添加一个新的div到我的叠加层:

 onclick : function (e) {
     var index = $(e.target).index(),
         lngLatXYposition = $.view.overlay.getProjection().fromLatLngToDivPixel(this.getPosition());
         icon = this.getIcon(),
         x = lngLatXYposition.x - icon.anchor.x,
         y = lngLatXYposition.y - icon.anchor.y

     $('<div>test</div>').css({ left: x, position: 'absolute', top: y + 'px', zIndex: 1000 }).appendTo('.overlay');
}

在创建叠加层时,我尝试了所有我想到的属性。 zIndex,zPriority等。

我要添加我的叠加层:
$.view.overlay = new GmapOverlay( { map: view.map.gmap });

并且GmapOverlay继承自新的google.maps.OverlayView。

有任何想法吗?

..弗雷德里克

最佳答案

您无法更改OverlayView的zIndex(它没有这种属性),但是它包含包含DOM节点的 Pane 。您可以在此处使用z-index属性;

...
lngLatXYposition = $.view.overlay.getPanes().overlayLayer.style['zIndex'] = 1001;
...

关于javascript - 谷歌 map 版本3中的z-Index覆盖,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2682626/

10-09 14:56