2013-03-28 76 views
6

我以前在很多網站上都使用過Google地圖,但我遇到過一個我從未遇到過的問題。地圖窗口正在顯示,但它只顯示左上方的地圖片段,之後的任何內容(即使我在左右導航時),沒有任何內容加載到右側。它就好像被導航的窗口有一個內部偏移量,它將它從視口的側面推開。有誰知道可能是什麼原因造成的?谷歌地圖窗口只顯示地圖的一部分

編輯

我剛纔發現,當窗口大小,地圖刷新,並且佈局是固定的。

該地圖包含在通過javascript顯示的選項卡中(並通過display:none隱藏)。 tab容器是通過ajax加載的,加載時會調用loadMap函數。我試圖通過將它包含在一個setTimeout函數中來推遲loadMap函數,該函數將地圖的創建時間延遲1秒,但它仍然如此(需要調整窗口大小以修復它)

回答

2

右鍵,我不是確定它爲什麼不起作用,但我已經將代碼更改爲只在第一次打開標籤時執行地圖創建功能。這會使其正常工作

4

這是您在地圖容器隱藏時或在創建地圖時尺寸爲零時遇到的典型問題。

通常的解決辦法是做這些中的一個:

  • 推遲創建地圖直到容器元件是可見的並且尺寸不正確,或

  • 呼叫google.maps.event.trigger(map, 'resize')地圖變得可見或是後調整大小。此事件通知Maps API重新調整其對地圖中可見內容的計算。

這聽起來像你已經通過使用第一個選項解決了它,這絕對是兩個更好的選擇。您的頁面加載速度會更快,因爲您沒有花時間創建不可見的地圖。如果您確實有地圖大小可能發生變化的情況(例如可調整大小的窗口),那麼您可以在發生這種情況時觸發調整大小事件。