Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当标记太近时,D3.js mouseover未激活_Javascript_Google Maps_D3.js - Fatal编程技术网

Javascript 当标记太近时,D3.js mouseover未激活

Javascript 当标记太近时,D3.js mouseover未激活,javascript,google-maps,d3.js,Javascript,Google Maps,D3.js,我开发了一个使用图像标记的谷歌地图。当光标位于标记上时,我希望显示一个信息框,但当标记靠近(不一定重叠)时,信息框不显示 什么控制鼠标上方激活所需的标记之间的最小距离?您的每个标记在其自身的内都是一个。图像可能只有16px*16px,但SVG是160px*20px,整个区域都在抓取鼠标事件。当标记靠近时,这意味着SVG中一个标记的不可见部分阻止鼠标事件通过下面的可见标记 将CSS更改为忽略上的鼠标事件,并仅对的可见部分进行响应,似乎可以使事情按预期进行: .members svg { po

我开发了一个使用图像标记的谷歌地图。当光标位于标记上时,我希望显示一个信息框,但当标记靠近(不一定重叠)时,信息框不显示


什么控制鼠标上方激活所需的标记之间的最小距离?

您的每个标记在其自身的
内都是一个
。图像可能只有16px*16px,但SVG是160px*20px,整个区域都在抓取鼠标事件。当标记靠近时,这意味着SVG中一个标记的不可见部分阻止鼠标事件通过下面的可见标记

将CSS更改为忽略
上的鼠标事件,并仅对
的可见部分进行响应,似乎可以使事情按预期进行:

.members svg {
   pointer-events: none;
}
.members svg image {
  pointer-events: visiblePainted;
}

请给我们看一下代码好吗?标记图像的可单击区域由google.maps.MarkerShape对象定义,可以使用marker.getShape()检索该对象。我不知道同一个区域是否用于mouseover/out事件。很可能是这样。但是,正如拉尔斯所说,最好显示一些代码。也许问题出在别的地方。这是我和费尔诺夫特汉德斯在另一个问题上聊天时的一把小提琴:jsfiddle.net/5XGAa/10。这与有问题的那一个非常相似。这是非常感谢的页面。还有一件事要学。我将成员SVS的CSS调整为16x16,但我会考虑您的建议,以防SVG不能正常工作(现在看来是这样做的)。这当然是另一种方式。我不确定是否有任何图形或文本需要额外的空间,所以我不建议这样做。您可能仍然会注意到拐角处有一个不可见的重叠,但它应该更加直观。