【问题标题】:Mapbox GL popup text is unselectableMapbox GL 弹出文本不可选择
【发布时间】:2020-05-21 08:11:31
【问题描述】:

我的弹出窗口中的文本无法选择。我可以通过单击等方式关闭弹出窗口,但是当将指针悬停在文本上时,指针仍然是手形图标,并且永远不会变成 I 形文本选择图标。我尝试了几种不同的方式添加弹出窗口,但无济于事:

//with visgl/react-mapbox-gl:
<Popup latitude={0.0} longitude={0.0}>this text is unselectable</Popup>

//via the regular api:
new MapboxGL.Popup()
    .setLngLat([0.0, 0.0])
    .setHtml(<h1>this text is also unselectable</h1>)
    .addTo(map);

//this method that I copied from somewhere:
const placeholder = document.createElement('div');
ReactDOM.render(<h1>still unselectable</h1>, placeholder);
new MapboxGL.Popup()
     .setDOMContent(placeholder)
     .setLngLat()
     .addTo(map);

Mapboxexamples 中,它们的文本是可选择的。知道为什么我的不是吗?谢谢。

【问题讨论】:

    标签: reactjs typescript mapbox-gl-js mapbox-gl react-map-gl


    【解决方案1】:

    我相信如果没有运行示例,将很难找到确切的原因。以下是一些想法:

    • 使用他们在内容示例中使用的相同类:mapboxgl-popup-content
    • 检查 HTML 并查看文本顶部是否没有某种不可见的分层元素。在 Browser DevTools 的“Inspector”(Firefox)或“Elements”(Chrome)选项卡中,通过悬停标签,您将能够看到每个渲染元素的边界框,如下所示:

    • 与前一点类似,检查渲染元素中的 z-index CSS 属性,以查看内容顶部是否没有分层

    最后,还有cursor CSS 属性,您可以使用它来强制显示光标。

    【讨论】:

    • 谢谢。将cursor: none 更改为cursor: text 并将user-select: none 更改为user-select: text 修复了它。
    猜你喜欢
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多