6

过去我曾在许多网站上使用过 Google 地图,但遇到了一个我从未遇到过的问题。地图窗口正在显示,但它只显示左上角的地图片段,以及之后的任何内容(即使我正在四处导航),没有任何内容加载到右侧。就好像被导航的窗口有一个内部偏移量,将它推离视口的一侧。有谁知道可能是什么原因造成的?

编辑

我刚刚发现,当调整窗口大小时,地图会刷新,并且布局是固定的。

该地图包含在通过 javascript 显示(并通过 隐藏display:none)的选项卡中。tab容器通过ajax加载,加载时调用loadMap函数。我尝试通过将 loadMap 函数包含在将地图的创建延迟 1 秒的 setTimeout 函数中来推迟它,但它仍然执行相同的操作(需要调整窗口大小以修复它)

4

2 回答 2

4

这是您在创建地图时地图容器隐藏或维度为零时会遇到的典型问题。

通常的解决方案是执行以下操作之一:

  • 推迟创建地图,直到容器元素可见且大小合适,或者

  • google.maps.event.trigger( map, 'resize' )在地图可见或调整大小后调用。此事件告诉 Maps API 重新调整其对地图中可见内容的计算。

听起来您已经通过使用第一个选项解决了它,这绝对是两者中更好的选择。您的页面将加载得更快,因为您没有花时间创建不可见的地图。如果您确实遇到地图大小可能发生变化的情况(例如,可调整大小的窗口),那么您可以在发生这种情况时触发调整大小事件。

于 2013-03-29T03:06:47.693 回答
2

Righto,我不确定为什么它不起作用,但是我已将代码更改为仅在第一次打开选项卡时执行地图创建功能。这使它正常工作

于 2013-03-29T02:08:04.830 回答