完全摆脱了leaflet.js源代码,这是一个完整的技巧,但它可以工作(至少在jsfiddle中有效)
这个想法来自Google Maps,当其容器div调整大小时“调整”或“重绘”地图。
我所做的更改是:
<a href="#lC" data-toggle="tab" id="link3">tab3</a>
$("body").on('shown','#link3', function() {
L.Util.requestAnimFrame(map.invalidateSize,map,!1,map._container);
});
requestAniMFrame行来自leaflet.js中的trackResize
:嗨,我用map.invalidateSize(false); 而不是L.Util.requestAnimFrame(…,这似乎也可行。只是以为我会指出这一点。不过,很好的答案!– Herr Grumps