传单只呈现在一个角落

Sto*_*ace 5 html javascript css leaflet

我有一张只渲染到一个角落的传单图。当我调整浏览器窗口的大小时,整个地图都会呈现。

这就是我调用地图的方式

var map = L.map('map', 
{ crs: L.CRS.EPSG3857 }
).setView([105.2, 100], 6);

var tiles = L.tileLayer('http://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}.{ext}', {
attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> &mdash; Map data &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
    subdomains: 'abcd',
    ext: 'png'
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

这是我的 css

.myContainer {
    width: 1024px;
    height: 800px;
    position: relative;
}

.map {
    width: 1024px; 
    height: 800px; 
    z-index: 0;
}
Run Code Online (Sandbox Code Playgroud)

map被包裹在一个container。我在网上找到的有关此问题的所有内容都指向地图或其父容器中的相对大小。但是,我有绝对尺寸。我.css.js(我初始化地图的地方)之前加载。地图不会显示在起始页上,而是在您单击子菜单点时显示。

为什么地图没有正确渲染?

Iva*_*hez 5

地图不会显示在起始页上,而是当您单击子菜单点时显示。

您正在隐藏或零大小的容器上初始化地图,这使得此问题成为第二张传单地图未正确渲染的重复问题

答案是相同的:map.invalidateSize()每当地图应该可见时,或者当您更改其尺寸或可见性时,就运行。