我知道這個問題很古老,但我似乎無法找到明確的指示。Google Map API V3隱藏div(jquery-ui標籤)
問題的關鍵在於Google Map在加載到隱藏的(display:none)div上時無法完全加載(部分顯示)。 jQuery選項卡等。
API V3不再接受checkResize(),'left:-1000px'不是一個優雅的解決方案。
我聽說延遲構建地圖,並單擊標籤時重新加載地圖,但請幫我準確的代碼。
我知道這個問題很古老,但我似乎無法找到明確的指示。Google Map API V3隱藏div(jquery-ui標籤)
問題的關鍵在於Google Map在加載到隱藏的(display:none)div上時無法完全加載(部分顯示)。 jQuery選項卡等。
API V3不再接受checkResize(),'left:-1000px'不是一個優雅的解決方案。
我聽說延遲構建地圖,並單擊標籤時重新加載地圖,但請幫我準確的代碼。
爲什麼你說「left:-1000px'不是一個優雅的解決方案」?它在API v2中對我非常有用,並且也適用於API v3(未經測試,請告訴我它是否無效)。
重繪,即,API V2 checkResize()
來完成這樣的API第3版:
google.maps.event.trigger(map, 'resize');
這裏是我的CSS的jQuery UI的標籤的例子(由 http://jqueryui.com/demos/tabs/啓發):
.ui-tabs .ui-tabs-hide#my_tabs-1 { /* my_tabs-1 contains google map */
display: block !important;
position: absolute !important;
left: -10000px !important;
top: -10000px !important;
}
如果您不能依賴Tab顯示事件,則可以在Tab Link單擊事件中添加事件,而不必在頁面上調用initialize()
。
$('#TabLink').click(function() {
initialize();
});
thanks tomas。 '-10000px'對我來說看起來有點冒失,但是我仍然會放棄它。謝謝!! – Rex
@Rex,剛剛添加了一個零,現在它很優雅! :-) – TMS
@托馬斯哈哈,是的,它的工作原理。但我仍然想知道如何延遲構建地圖,或者如何重新加載地圖:) – Rex