我正在使用google maps api V3,我目前正在显示自定义标记为6x6px的点,当我们正在显示它们时,我正在显示infowindow。
我已经将光标设置为地图和标记上的默认值,现在当我将鼠标悬停在标记上然后我将鼠标移向infowindow几秒钟时它会显示手形光标,当我有相当的时候看起来非常难看地图上的一些标记,我需要避免这种情况,请让我知道如何避免这种情况。
这是我的jsfiddle这里悬停在从底部到顶部的标记上的蓝色标记,你会看到一点点闪烁,我根本不想显示手指...我只想要默认光标< / p>
这就是我创建infowindow的方式
var infowindow = new google.maps.InfoWindow({
content: "infowindow",
cursor: 'default',
});
答案 0 :(得分:4)
这个CSS解决了我的问题......
#map div {
cursor:default !important;
}
答案 1 :(得分:1)
我认为这可能是Google Maps API的“错误”/“特征”。发生的事情是,当垂直向上移动光标时,它会从标记移开并移动到InfoBox的透明边界框上。但是,Market的MouseOut处理程序会将InfoBox从地图中删除。
因此,Google Maps API必须决定当光标位于已移除的元素上时要执行的操作。它应该选择你在MapOptions中定义为默认值的光标;但事实并非如此。我同时使用了FireFox和Chrome的Element Inspectors,并反复看到当InfoBox被删除时,Google Maps API明确地将活动光标设置为“Hand”而不是将其作为“默认”保留在主要子'div'中。地图。
我在JSFiddle的初始化代码中添加了document.body.style.cursor定义,以确保浏览器本身不会对游标感到困惑:
$(document).ready(function () {
mapObjects.domReady = true;
document.body.style.cursor = "default";
});
即使添加了这个,使用Element Inspector在Chrome中说,你会看到'div class =“gm-style”......'正下方的'div'将其光标样式显式更改为'url InfoBox被移除时的手牌。将光标移动一个像素,并将“div”的光标样式重置为Google Maps API的“默认”。
所以问题不在于浏览器继承游标样式。 Google Maps API本身会覆盖该子级“div”的光标样式,而 all 其子级“div”,其中地图图像是其中的一部分(当光标在InfoBox被删除了。)
您当然应该向Google提交错误报告。也许他们会在谷歌地图API的V4中解决这个问题。
一种可能的解决方法:
您可以尝试重新定位信息框,使它们距离标记三个,五个或更多像素,偏离中心说标记的右侧或左侧。然后,当光标离开Marker(并触发MouseOut和InfoBox移除)时,它不在InfoBox的隐藏部分之上,而是在Map图像tile上。因此,它的行为就像现在从标记向右,向左或向下移动一样,并且不会被InfoBox删除覆盖。但是,如果最终用户正在快速移动光标,或者在现在偏离中心的InfoBox的方向上,您仍然会出现手形光标。
另一个不是真正推荐的可行解决办法:
a. Do the first recommendation (the gap between Marker and InfoBox).
b. Get a handle to that particular 'div' by stepping through the immediate children of the "gm-style" div.
c. In the MouseOut handler, use a SetTimeout with a very short millisecond interval to re-override that 'div's' cursor style back to "default".
即使在快速光标移动到偏离中心的InfoBox上,这也会消除手形光标。你仍然会有轻微的闪烁,但如果最终用户停止移动光标,它将不会保持手形光标。但这对Google的地图“div”结构进行深入调整,这种解决办法在长期内并不可靠。
答案 2 :(得分:1)
您的解决方案是正确的,问题在于标记图标是图像。尝试使用google.maps.symbols
更改它我已经为您的小提琴上的标记创建了一个自定义SVG路径,但它仍然有效但是infoWindow仍在闪烁。
这是图标符号对象
icon: {
path: 'M0,0 10,0 10,10 0,10 Z',
scale: 1,
fillColor: '#076EB5',
strokeColor: '#076EB5',
fillOpacity: 1,
}
关于符号here
的精彩文档