2013-06-28 13 views
8

Ho un contenitore di google maps, diciamo 600px di altezza.Il contenitore di Google Maps non viene ridimensionato correttamente dopo l'animazione

Ho un tasto, il ridimensionamento (jQuery) il contenitore div arround mappa:

  $('#add').click(function() { 
       $("#container-map").animate({ 
        height: '50%', 
        minHeight: '50%' 
       }, 1500); 
       google.maps.event.trigger(map, 'resize'); 
      }); 

Ora il contenitore e carta sono di 300px in altezza, ma l'API di Google Maps Google pensa che sia ancora 600 pixel, in modo che il il centro della mappa è ancora a 300 px anche se dovrebbe essere a 150 px (300/2).

http://woisteinebank.de/dev2.html# Quando si cerca una posizione nella casella, è centrata. Premi "Eintragen" e cerca ancora, non è centrato correttamente.

Puoi provare e verificare o addirittura suggerire come risolvere questo difetto?

ho cercato di usare il usual solution with triggering the resize event ma non funziona

risposta

6

Ah ah perché si attiva l'evento resize prima l'animazione inizia anche :-) Devi aspettare fino alla fine. Per questo, utilizzare the 4th argument of .animate - la complete callback che viene chiamato dopo l'animazione si conclude:

$('#add').click(function() { 
    $("#container-map").animate({ 
     height: '50%', 
     minHeight: '50%' 
    }, 1500, function() { 
      google.maps.event.trigger(map, 'resize'); 
    }); 
}); 
+0

_Questo è proprio quello che stavo pensando quando ho guardato il '1500' delay..oO_ Thx! – DanFromGermany

+0

Prego :-) Scusa per "ha ha" ma è come se mi dicessi uno scherzo in javascript ;-) (conosco la deformazione del programmatore :-)) – TMS

+0

@DanFromGermany wow vedo che l'hai già risolto sul tuo web :-) – TMS

Problemi correlati