我将Mapbox与wordpress结合使用:我看到默认情况下,弹出窗口的锚点位置会生成css。我无法将弹出式窗口置于居中位置:例如,当我打开弹出式窗口时,某些弹出窗口会被截断,因为地图并未居中。我尝试了在这里找到的所有解决方案,但没有一个起作用。我不是在使用Json,而是在wordpress循环中放置标记并将内容放入弹出窗口中。除了json,我找不到其他解决方案。 所以我只想知道是否有可能完全禁用弹出窗口的位置,以便无论单击什么标记,都可以将其始终放置在地图角上。
编辑最后,我只是更改了一些CSS,以使弹出窗口贴在地图的左侧:我使用transform:none禁用了锚点默认位置,将其放置在地图容器的角落与顶部和左侧..然后禁用弹出窗口周围的箭头。
.mapboxgl-popup{
transform:none !important;
top: 15%;
left: 10px;
}
.mapboxgl-popup-anchor-top .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-center .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-left .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-right .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{
display:none !important;
}
答案 0 :(得分:2)
编辑
最后,我只是更改了一些CSS,以使弹出式窗口停留在地图的左侧:我使用transform:none禁用了锚点默认位置,将其放置在地图容器的顶部和左侧的角落。然后我禁用了弹出窗口周围的箭头。
.mapboxgl-popup{
transform:none !important;
top: 15%;
left: 10px;
}
.mapboxgl-popup-anchor-top .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-center .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-left .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-right .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip,
.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{
display:none !important;
}
答案 1 :(得分:-1)
在官方地图框示例中使用此示例:
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>Display a popup</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.52.0/mapbox-gl.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.52.0/mapbox-gl.css' rel='stylesheet' />
<style>
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
</style>
</head>
<body>
<div id='map'></div>
<script>
mapboxgl.accessToken = '<your access token here>';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v9',
center: [-96, 37.8],
zoom: 3
});
var popup = new mapboxgl.Popup({closeOnClick: false})
.setLngLat([-96, 37.8])
.setHTML('<h1>Hello World!</h1>')
.addTo(map);
</script>
</body>
</html>
,您可以在以下链接中看到示例结果:
https://www.mapbox.com/mapbox-gl-js/example/popup/