2012-04-26 22 views
2

我使用谷歌的海洋保護API V3顯示在200像素高格地圖繪製的div的高度:改變在谷歌地圖中

<div id='propertyKaart'></div> 

隨着我使用這個div正常的javascript顯示地圖:

$(document).ready(function(){ 
     var map = new google.maps.Map(document.getElementById("propertyKaart"), 
        mapOptions); 
        map.setCenter(punt); 
        map.setZoom(14); 
}) 

隨着與.mapPuller我想改變圖表的高度階級點擊一個按鈕來讓說600px的:

var mapState   
$('.mapPuller').click(function(e){ 
     if(mapState == 'klein'){ 
      $('#propertyKaart').animate({height: '600px'}, 200); 
      mapState = 'groot' 

     }else{ 
      $('#propertyKaart').animate({height: '200px'}, 200); 
      mapState = 'klein'; 

     } 
     //---- here 
    }) 

工程就像一個魅力,只有一個問題。地圖(瓦片,這麼說)仍然認爲div是200px高。

documentation我發現我不得不在更改容器div時觸發resize事件。因此,我在//------ here現貨的.mapPuller函數中添加了以下代碼。

google.maps.event.trigger(map, 'resize'); 

但這不起作用...... 我缺少的東西?

當我調整我的瀏覽器窗口,該事件被觸發和瓷磚似乎做他們的工作.....

+0

嘗試不使用動畫並查看它是否有效 – 2012-04-26 18:59:05

+0

當更改動畫函數時,只需要一個普通的'.css()'改變它的工作原理......但這很奇怪...... – stUrb 2012-04-27 08:49:19

回答

1

我試着調整使用jQuery的animate功能地圖,並與你有同樣的問題。地圖磚不適應。但觸發地圖resize事件修復了問題。

所以,也許有一個問題的範圍界定。確保map變量可在mapPuller函數內訪問,並確保控制檯中沒有其他錯誤。

+0

當我' alert(map)'或'alert(google.maps.event)'我得到一個對象對話框,所以它們被髮送到函數。 – stUrb 2012-04-27 08:48:28

+0

那麼也許這是一個特定於瀏覽器的問題。我不明白爲什麼它不應該工作。一切都很正常 – keune 2012-04-27 09:59:12