首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果位于视口边缘,悬停时也会弹出React-map-gl弹出窗口

如果位于视口边缘,悬停时也会弹出React-map-gl弹出窗口
EN

Stack Overflow用户
提问于 2020-02-03 07:48:03
回答 1查看 2.6K关注 0票数 0

我正在使用Uber的reac-map-gl并使用弹出功能。从网站上截取的代码如下所示:

代码语言:javascript
复制
import {Component} from 'react';
import ReactMapGL, {Popup} from 'react-map-gl';

class Map extends Component {
  state = {
    showPopup: true
  };

  render() {
    const {showPopup} = this.state;
    return (
      <ReactMapGL latitude={37.78} longitude={-122.41} zoom={8}>
        {showPopup && <Popup
          latitude={37.78}
          longitude={-122.41}
          closeButton={true}
          closeOnClick={false}
          onClose={() => this.setState({showPopup: false})}
          anchor="top" >
          <div>You are here</div>
        </Popup>}
      </ReactMapGL>
    );
  }
}

我修改了代码,制作了一个标记和弹出列表并返回它们。如果我将鼠标悬停在标记区域上,弹出窗口只会显示出来,但这就是问题所在,如果我拿起地图并拖动它,使标记位于视口之外的边缘。

我的CSS如下所示:

代码语言:javascript
复制
.mapboxgl-popup.mapboxgl-popup-anchor-top {
  opacity: 0;
}

.mapboxgl-popup.mapboxgl-popup-anchor-top:hover {
  opacity: 100%;
  width: 150px;
  height: 150px;
  opacity: 1;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-03 08:09:40

我不确定为什么会发生这种情况,但Popup组件似乎有一个与视图外部的标记相关联的操作:

https://github.com/uber/react-map-gl/blob/master/docs/components/popup.md#dynamicposition-boolean---default-true

考虑将其设置为false,这样他们的操作就不会被触发。

代码语言:javascript
复制
  <Popup
    latitude={37.78}
    longitude={-122.41}
    closeButton={true}
    closeOnClick={false}
    onClose={() => this.setState({showPopup: false})}
    anchor="top" 
    dynamicPosition={false}
  ></Popup>

此外,悬停后不会删除弹出窗口,它们只是不透明度:0。可能dynamicPosition触发的操作正在覆盖您的不透明度。不应该使用CSS来显示和隐藏弹出窗口,而应该使用JavaScript/React。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60031686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档