【问题标题】:Toggling Mapbox GL Control Visibility切换 Mapbox GL 控件的可见性
【发布时间】:2018-01-09 21:43:02
【问题描述】:

我有一个 React 应用程序,其中包含一个容器内的 Mapbox GL 地图实例,我允许我的用户调整其宽度和高度。在该地图上,我调用了addControl() 以添加NavigationControl

有没有办法根据我的容器的宽度/高度来切换 NavigationControl 的可见性(作为道具传递给容器),就像我可以更改 visibility 的一样通过调用 [setLayoutProperty(https://www.mapbox.com/mapbox-gl-js/api#map#setlayoutproperty)]?

我考虑过添加和删除控件,但根据文档,addControl() 的返回值是地图本身,我看不到任何可以访问当前正在显示的控件的地方。

【问题讨论】:

    标签: mapbox-gl-js


    【解决方案1】:

    最直接的选择就是操作 DOM。

    $('#map .mapbox-ctrl-top-right button').hide()
    

    如果您想自动响应页面大小调整,请使用 CSS:

    @media only screen and (max-width: 600px)  {
        #map .mapbox-ctrl-top-right button {
           display: none;
        }
    }
    

    【讨论】:

    • 谢谢,但有两个问题: 1. jQuery 不是我的应用程序中的依赖项。它实际上是一个 React 应用程序。 2. 通过 CSS 执行此操作并没有真正的帮助,因为地图存在于我允许我的用户调整大小的容器中。所以如果我的屏幕是 600px 宽,那么保存地图的块可能是 580px 宽,也可能是 60px。
    • 1.你可能不需要jquery.com。 2. 您可以针对该部分提出单独的问题。
    • 感谢您的帮助。至于“单独的问题”,它实际上是我原来问题的一部分;我想我不够清楚。 > 有没有办法根据我的容器的宽度/高度来切换 NavigationControl 的可见性(作为道具传递给容器)
    猜你喜欢
    • 1970-01-01
    • 2019-07-31
    • 2019-04-30
    • 2020-09-20
    • 2011-04-08
    • 2017-03-14
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多