Chciałbym mieć popup, który zawsze pojawia się w centrum widoku. Jak mam to rozwiązać?

https://jsfiddle.net/dendi_lee1996/j985mpv/20/

HTML

<div id="map"></div>
<nav id="button"></nav>

CSS

body {
  margin: 0;
  padding: 0;
}

#map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
}

#button {
  background: #fff;
  position: absolute;
  z-index: 1;
  top: 10px;
  right: 10px;
  border-radius: 3px;
  width: 120px;
  border: 1px solid rgba(0, 0, 0, 0.4);
  font-family: 'Arial', sans-serif;
}

#button tab {
  font-size: 13px;
  color: #404040;
  display: block;
  margin: 0;
  padding: 0;
  padding: 10px;
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.25);
  text-align: center;
}

#button tab:last-child {
  border: none;
}

#button tab:hover {
  background-color: #f8f8f8;
  color: #404040;
}

#button tab.active {
  background-color: #3887be;
  color: #ffffff;
}

#button tab.active:hover {
  background: #3074a4;
}

Z góry dziękuję.

Danny

0
Dan 27 październik 2020, 15:44

1 odpowiedź

Najlepsza odpowiedź

Dynamicznie można ustawić lokalizację wyskakującego okienko (patrz HTTPS: //docs.mapbox.com/mapbox-glad-JS/api/markers/#popup#setlnglat). Coś takiego:

if (!popup.isOpen()) {
    this.className = '';
    popup.setLngLat(map.getCenter());
    popup.addTo(map)
} else {
    this.className = 'active';
    popup.remove();
}
1
Anatoly Sukhanov 27 październik 2020, 17:23