在加载其他所有内容后加载 Google 个地图

Load Google Maps AFTER everything else has loaded

我在我的网站上使用一些云字体和 Google 地图 JavaScript API。

为了避免将字体 "transforming" 显示到我设置的云字体中,我添加了一些基本代码来最初隐藏 body 标签,然后在所有内容加载完成后加载它:

JS:

$(window).on('load', function() { 
    $("body").fadeIn('fast');
});

CSS:

body {
    display: none;
}

代码本身运行良好,但问题是让 Google 地图正确加载。正如您在此 fiddle 中所见,地图未正确加载。地图代码本身就可以正常工作。

如何将 window 加载功能与 Google 地图结合使用,使两者都能正常工作?

如果目标 (#map) 被隐藏,显然 google 地图不会加载。

您可以通过在目标可见后触发地图的调整大小事件来解决此问题,但请记住将中心移回您想要的位置 (lat/long)。

google.maps.event.trigger(map, 'resize');
map.setCenter({lat: -34.397, lng: 150.644}); // from OP's fiddle

已更新 fiddle:https://jsfiddle.net/Lfq1negw/1/