Javascript 传单.js:在地图容器外弹出
我需要在地图容器外打开一个弹出窗口,如下所示: 在地图容器和另一个div上弹出,始终在顶部,我在Javascript 传单.js:在地图容器外弹出,javascript,css,popup,leaflet,Javascript,Css,Popup,Leaflet,我需要在地图容器外打开一个弹出窗口,如下所示: 在地图容器和另一个div上弹出,始终在顶部,我在中使用了z-index。传单弹出内容包装器,但没有成功 我也使用了L.marker([14,-45]).bindpoop(content,{autoPan:false})但始终在容器内显示弹出窗口。编辑 一种解决方法是自己实现“弹出窗口”,使其属于地图容器父级,而不是地图容器内部 您需要实施标记移动跟踪,但使用传单,这相当容易: 使用地图的事件 使用以下命令检索标记当前位置: 使用方法移动弹出窗口以
中使用了z-index
。传单弹出内容包装器
,但没有成功
我也使用了L.marker([14,-45]).bindpoop(content,{autoPan:false})代码>但始终在容器内显示弹出窗口。编辑
一种解决方法是自己实现“弹出窗口”,使其属于地图容器父级,而不是地图容器内部
您需要实施标记移动跟踪,但使用传单,这相当容易:
使用地图的事件
使用以下命令检索标记当前位置:
使用方法移动弹出窗口以应用翻译3d
(硬件加速翻译)
map.on(“移动”),函数(){
movePopup();
});
函数movePopup(){
var mapContainerRelativePos=map.latLngToContainerPoint(mymarker.getLatLng()),
x=mapContainerPos.left+mapContainerRelativePos.x,
y=mapContainerPos.top+mapContainerRelativePos.y;
setTransform(mypopup,{x:x,y:y},1);
}
演示:
然后打开和关闭弹出窗口
原始答案
L.Popup
被添加到地图元素中。因此,默认情况下,它不能扩展到地图容器之外
但是,您可以通过检索关联的HTML元素并将其附加到外部DOM父节点来尝试“提取”它(popup.getElement()
,在手册1.0中),这样您就不再绑定到映射容器。这正是我尝试的。。。但这不是一个好的答案,因为“克隆”元素是可能实现的,但它的定位不好+没有绑定到地图。我认为最好的答案是:很遗憾,这是不可能的(@ghybsIt的+1太好了!我更明白了,谢谢你的解决方案!)!。