如何使用 JS API 使 Google 地图标记在悬停时“排在最前面”?

How can I make Google Map markers "come to top" on hover with the JS API?

提问人:Andrew G. Johnson 提问时间:12/22/2010 最后编辑:Andrew G. Johnson 更新时间:3/17/2011 访问量:1260

问:

基本上,我想确保当用户将鼠标悬停在标记上时,它会被带到最前沿。我正在开发酒店搜索,所以在很多情况下,很多酒店都聚集在一起[想想拉斯维加斯大道]--要了解正在发生的事情的一个很好的例子,请查看 hotels.com[下面的直接链接]

http://www.hotels.com/search/searchmap.html?ar=HomePage::NoSuggest&cd=12-24-10&dd=12-26-10&nr=1&pn=1&r=1&rl=destination:1642852:EXACT_RED:HIGH&so=BEST_SELLER&vc=true&vt=MAP#so=BEST_SELLER&vt=MAP&rl=destination%3A1642852%3AEXACT_RED%3AHIGH&pfm=1&dn=Las+Vegas+(和+附近),+内华达州,+美国+美国&cd=12/24/10&dd=12/26/10&nr=1&pn=1&pfcc=USD&minp=0&maxp=500&ming=0&最大g=5&r=1&cpr=0

任何帮助将不胜感激,谢谢

JavaScript 谷歌地图

评论


答:

0赞 Celso Dantas 12/22/2010 #1

只需包含一个事件即可为悬停元素的父元素设置 z-index。我认为他们就是这样做的

<div style="position: absolute; left: 539px; top: 164px; display: block; z-index: 9">
   <span class="map_pin range_mid" style=""></span>   <-- your element
</div>    <--- parent
0赞 Garland Pope 3/17/2011 #2

Google Maps API V3 为 Marker 对象提供了 setZIndex() 方法。可以调用此方法将标记提升到前台。

为了让它工作,我必须首先在创建它时在每个标记上设置一个 zIndex。我将它们全部初始化为相同的值(9,这是任意的)。然后,在酒店名称的鼠标悬停事件中(在地图旁边的列表中),我使用 setZIndex 方法将该酒店标记的 zIndex 更改为比其他标记更高的值(10,同样是任意值)。在 mouseout 事件中,我将 zIndex 更改回原始值。