【发布时间】:2013-09-03 07:06:30
【问题描述】:
我之前没有在这里发帖,但已经阅读了很多,所以我希望我没有违反任何规则......
我正在尝试在传单地图上放置一种蒙版图像(一个带有透明圆形孔的黑色正方形);使它看起来像显示在旧示波器屏幕上的圆形地图;-)。绝对位于顶部:0px;底部:0px;。固定,独立于缩放或平移。
我可以让图像显示,在某些情况下我什至可以让地图平移和放大透明孔,我什至可以按 X 关闭标记上的弹出窗口,但无论我尝试什么单击或触摸时,永远无法使标记弹出窗口出现。
我尝试了无数种组合:使用 PNG 图像或原始 SVG 代码,更改 z-index,是否在 div 中。 我在同一个容器中尝试过,在不同的容器中,甚至将其添加到传单控制窗格中:
document.getElementsByClassName("leaflet-control-container")[0].innerHTML += '\
<svg style="position: absolute; top: 0px; left: 0px; height: 360px; width: 360px;">\
<g>\
<path style="fill-rule: evenodd; fill: black; stroke: black; stroke-width: 0"\
d="M 0,0 L 360,0 L 360,360 L 0,360 z M 180,10 A 170,170 0 0,1 180,350 A 170,170 0 0,1 180,10 z"></path>\
</g>\
</svg>';
图像显示正常,但与 Leaflet 的交互已损坏,无法弹出交互。
如果我将 svg 的 z-index 设置为 -1,遮罩将不再显示,但弹出窗口会出现。
【问题讨论】:
-
我认为问题在于,如果您将图像放在其他东西上,即使图像是透明的,它也会覆盖下面的元素并且无法与之交互。我也很想看看是否有人提出了解决方案。
-
是的,不管内容是什么,它是一个覆盖整个地图的方形元素,它总是会造成麻烦。尽管如此,必须有一种方法来创建面具......
标签: javascript svg leaflet