【发布时间】:2012-02-11 18:23:30
【问题描述】:
我正在使用谷歌地图 API 3 和自定义叠加层 (OverlayView) 我有这个代码:
请用鼠标悬停制造商以查看工具提示覆盖。
如何精确定位标记附近的工具提示弹出窗口(黄色窗口)?我的 X,Y 想法不起作用,因为它与地图相关,因此如果页面的布局是流动的,我的解决方案 (X,Y) 毫无价值。
有什么想法吗?
google.maps.event.addListener(marker, 'mouseover', function(event) {
var pixel = latLngToPixel.getProjection().fromLatLngToContainerPixel(event.latLng);
// Grab marker position
var pos = [ pixel.x, pixel.y ];
// Create the tooltip on a dummy div and store it on the marker
marker.tooltip = $('<div />').qtip({
content: {
text: 'I\'m a replacement tooltip for the regular google one<br />New line<br /> new line<br />Newer line',
title: {
text: 'aaa',
button: true
}
},
position: {
at: "right center",
my: "left center",
target: pos,
container: $('#map_canvas')
},
show: {
ready: true,
event: false,
solo: true
},
hide: {
event: 'mouseleave unfocus'
}
});
});
}
【问题讨论】:
-
工具提示是什么意思?就像当您将鼠标悬停在它上面时会在延迟后出现的小标签?还是像您单击图标时实际弹出的窗口一样?
-
如果您将鼠标悬停在任何市场上,您会看到一个黄色窗口,这就是我所说的工具提示
-
你想要它在哪里?直接通过google弹出?为什么?如果您想覆盖弹出窗口,为什么不将其从地图上移除并制作自定义叠加层。还是要将其放置在弹出窗口附近?
-
您好,谢谢!我想定位在标记附近。问题是我的布局是流动的,地图可能在“任何”位置,因此根据地图位置,如果我使用 X,Y 是没用的。谢谢!
-
看看Heera的评论。您现在将面临的最大问题是,如果您要为其显示工具提示的项目接近视口的极端,您需要使地图将项目移动到足以显示工具提示的焦点。您可以通过使用
map.panToBounds并为其提供标记的边界+ 工具提示,因为它是新的边界。不过,在您执行此操作之前,请仔细检查以确保边界在视口内,以节省不必要的调用
标签: jquery google-maps