Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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 传单.js:在地图容器外弹出_Javascript_Css_Popup_Leaflet - Fatal编程技术网

Javascript 传单.js:在地图容器外弹出

Javascript 传单.js:在地图容器外弹出,javascript,css,popup,leaflet,Javascript,Css,Popup,Leaflet,我需要在地图容器外打开一个弹出窗口,如下所示: 在地图容器和另一个div上弹出,始终在顶部,我在中使用了z-index。传单弹出内容包装器,但没有成功 我也使用了L.marker([14,-45]).bindpoop(content,{autoPan:false})但始终在容器内显示弹出窗口。编辑 一种解决方法是自己实现“弹出窗口”,使其属于地图容器父级,而不是地图容器内部 您需要实施标记移动跟踪,但使用传单,这相当容易: 使用地图的事件 使用以下命令检索标记当前位置: 使用方法移动弹出窗口以

我需要在地图容器外打开一个弹出窗口,如下所示:

在地图容器和另一个div上弹出,始终在顶部,我在
中使用了
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太好了!我更明白了,谢谢你的解决方案!)!。