2013-09-23 5 views
1

Im essayant de montrer une carte de google avec un effet de SlideToggle comment jamais la carte ne montre complètement.Google Map redimensionner ne fonctionne pas

la classe css a déjà 100% de largeur. Comment puis-je utiliser l'option de redimensionnement correctement?

var map; 
function initialize() { 
    var mapOptions = { 
    zoom: 11, 
    center: new google.maps.LatLng(<?php $custom = $this->item->extra_fields; echo $custom[0]->value; ?>, <?php $custom = $this->item->extra_fields; echo $custom[1]->value; ?>), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 

    }; 
    map = new google.maps.Map(document.getElementById('map-canvas<?php echo $this->item->id; ?>'), 
     mapOptions); 

    } 

google.maps.event.addDomListener(window, 'load', initialize); 

jQuery(document).ready(function ($) { 
    $('#mostrarmapa<?php echo $this->item->id; ?>').click(function() { 

     $('#map-canvas<?php echo $this->item->id; ?>').slideToggle(); 
     $('#map-canvas<?php echo $this->item->id; ?>').addClass('showmap'); 
    }); 
}); 

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

Répondre

0

Ajouter l'événement déclencheur resize de votre carte dans la fonction de rappel de votre slideToggle.

$('#map-canvas<?php echo $this->item->id; ?>').slideToggle(function(){ 
    google.maps.event.trigger(map, 'resize'); 
}); 
+0

Chose étrange, j'ai déjà essayé et cela n'a pas fonctionné. Si j'essaie d'entrer la commande directement sur la console affiche ceci: google.maps.event.trigger (carte, 'redimensionner'); undefined – israhes

+0

Ma première hypothèse serait le '$ (document) .ready()' est exécuté avant le 'google.maps.event.addDomListener (fenêtre, 'charger', initialiser)' - de sorte que l'événement 'resize' se déclenche sur une carte qui n'a pas encore été initialisée. Déplacez votre écouteur 'click' dans votre fonction' initialize() '. –

+0

Merci Suvi, je l'ai fait comme vous l'avez dit, mais ne fonctionne toujours pas http://goo.gl/hqEvWi Pourriez-vous jeter un oeil? – israhes

Questions connexes