Foros del Web » Programando para Internet » Javascript »

Conflicto con div no muestra todo el mapa

Estas en el tema de Conflicto con div no muestra todo el mapa en el foro de Javascript en Foros del Web. Hola amigos vereis, Tengo un panel que se oculta y se muestra pulsando un bonton funciona bien, dentro del panel tengo un mapa de google ...
  #1 (permalink)  
Antiguo 11/04/2013, 12:48
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 4
Conflicto con div no muestra todo el mapa

Hola amigos vereis,

Tengo un panel que se oculta y se muestra pulsando un bonton funciona bien, dentro del panel tengo un mapa de google maps que tambien funiona el problema es que para que el panel aparezca oculta lleva en el css un display:none;

Entonces al pulsar el boton muestra el panel pero esto hace que elmapa no se veo completo solo un trozo, he probado a quitar el display:none; y se ve pero claro el panel se ve al entrar y debe estar oculto, dejo el codigo para que lo vean:

Código HTML:
Ver original
  1.         <link rel="stylesheet" type="text/css" href="agenda.css">
  2.         <title>Insertar nuevo contacto</title>
  3.                 <style>
  4.                 .div_oculto_direcciones_negocio{
  5.  
  6.     display:none;
  7.     display:block;
  8.     overflow:hidden;    
  9.  
  10. }
  11.                 </style>
  12.     <script type="text/javascript" src="C:/xampp/htdocs/dondelocompro/script/jquery_mostrar_panel.js"></script>
  13.         <script type="text/javascript">
  14.     $(document).ready(function() {
  15.     // Aquí va el resto del código que solo se ejecutará cuando la página haya cargado.
  16.     });
  17.     </script>
  18.  
  19.     <script type="text/javascript">
  20.     $(document).ready(function(){
  21.       $("#boton").click(function(){
  22.         $("#div1").fadeToggle(700);
  23.       });
  24.     });
  25.     </script>
  26.          <script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false">
  27.         </script>
  28.             <script type="text/javascript">
  29.             var mapa;
  30.             var marcador;
  31.             var geocoder;            
  32.  
  33.             function inicializar(){    
  34.             geocoder = new google.maps.Geocoder();        
  35.             var myLatlng = new google.maps.LatLng(37.192869,-3.613186);
  36.             var mapOptions = {
  37.                   zoom: 16,
  38.                   center: myLatlng,
  39.                   mapTypeId: google.maps.MapTypeId.ROADMAP
  40.             }
  41.             mapa = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);    
  42.  
  43.             google.maps.event.addListener(mapa, 'click', function (event){
  44.                 creaMarcador(event.latLng)
  45.                 });
  46.  
  47.             }
  48.  
  49.             function creaMarcador(localizacion){                
  50.                 // Crear marcador
  51.                    if (marcador) marcador.setMap(null);                  
  52.                    marcador = new google.maps.Marker({
  53.                    position: localizacion,
  54.                    draggable: true,
  55.                    map: mapa
  56.                 });
  57.                 mapa.setCenter(localizacion);
  58.                  // Rellenar X e Y
  59.                 document.formulario.latitud.value=localizacion.lat();
  60.                 document.formulario.longitud.value=localizacion.lng();
  61.  
  62.                 // Modificar X e Y al mover
  63.                 google.maps.event.addListener(marcador,'drag',function(event){
  64.                     document.formulario.latitud.value=event.latLng.lat();
  65.                     document.formulario.longitud.value=event.latLng.lng();
  66.                     //mapa.setCenter(localizacion);
  67.                 });
  68.  
  69.             }
  70.  
  71.             function direc(){            
  72.             var dire = document.getElementById("direccion").value;            
  73.               geocoder.geocode( {'address': dire}, function(results, status) {
  74.             if (status == google.maps.GeocoderStatus.OK) {
  75.                   mapa.setCenter(results[0].geometry.location);
  76.                   creaMarcador(results[0].geometry.location);
  77.               }
  78.              else {
  79.                   alert("Geocode was not successful for the following reason: " + status);
  80.             }                
  81.             });
  82.  
  83.             }
  84.             </script>
  85.     </head>
  86.     <body onload="inicializar()">
  87.         <h1>Alta de Contacto:</h1>
  88.                                     <div id="div1" style="    display:none;    overflow:hidden">
  89.         <form action="save.php" method="post" name="formulario">
  90.                 <table>
  91.                 <tr><td>
  92.                
  93.  
  94.             Dirección: <input type="text" id="direccion" name="direccion" onchange="direc()"/>
  95.             <!--<input type="button" name="boton" value="Busca" onclick="direc()"/>--><br/><br/>
  96.  
  97.  
  98.  
  99.             <br/><br/>
  100.             <input type="submit" value="Guardar"/>
  101.             <input type="reset" value="Limpiar"/>
  102. </td><td>                      
  103.  
  104.  
  105.             X: <input type="text" name="latitud"/>
  106.             Y: <input type="text" name="longitud"/><br/><br/>
  107.             <div id="map_canvas" style="width:500px;height:500px">&nbsp;</div>                     
  108.                        
  109. </td></tr>                  </table>                   
  110.         </form>
  111.                 </div>
  112.                     <input id="boton" class="Boton_gris" style="margin:10px 0px 10px 0px;"  type="button" id="boton" name="enviar" value="Añadir dirección nueva"/>
  113.     </body>
  114. </html>


A ver si alguien sabe como sepodria solucionar esto.

Un saludo amigos
  #2 (permalink)  
Antiguo 11/04/2013, 13:02
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años, 7 meses
Puntos: 155
Respuesta: Conflicto con div no muestra todo el mapa

...pues me parece que tu problema es que estas inicializando el mapa sobre un div que tiene display:none, prueba quitar inicializar() del body, o sea no ejecutes esta funciona cuando se carga la pagina, sino cuando el panel ya tiene un display:block que seria en...$("#div1").fadeToggle(700); y te quedaria asi..

Código Javascript:
Ver original
  1. $("#div1").fadeToggle(700, function(){
  2.    inicializar();
  3. });
  #3 (permalink)  
Antiguo 11/04/2013, 13:33
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 4
Respuesta: Conflicto con div no muestra todo el mapa

Hola de nuevo ipraetoriux que tal,

He conseguido arreglarlo cambiado el codigo que muestra y oculta el div, solo me falta que cuendo pusemos el link "añadir" este desaparezca, por lo demas esta funcioando.

Pongo el codigo:

Código HTML:
Ver original
  1.         <link rel="stylesheet" type="text/css" href="agenda.css">
  2.         <title>Insertar nuevo contacto</title>
  3.  
  4. <script type="text/javascript">
  5. function toggleDivOL( elemID )
  6. {
  7.     var elem = document.getElementById( elemID );
  8.     if( elem.style.position != 'absolute' )
  9.     {
  10.         elem.style.position = 'absolute';
  11.         elem.style.left = '-4000px';
  12.     }
  13.     else
  14.     {
  15.         elem.style.position = 'relative';
  16.         elem.style.left = '0px';
  17.     }
  18. }
  19. <style type="text/css">
  20. body {
  21.     font-family: Tahoma, sans-serif;
  22. }
  23. .testDiv {
  24.     width: 300px;
  25.     padding: 5px;
  26.     background-color: #DDD000;
  27.     color: #CC0000;
  28.     border: 1px solid #000000;
  29.     font-weight: bold;
  30.  
  31. }
  32.          <script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false">
  33.         </script>
  34.             <script type="text/javascript">
  35.             var mapa;
  36.             var marcador;
  37.             var geocoder;            
  38.  
  39.             function inicializar(){    
  40.             geocoder = new google.maps.Geocoder();        
  41.             var myLatlng = new google.maps.LatLng(37.192869,-3.613186);
  42.             var mapOptions = {
  43.                   zoom: 16,
  44.                   center: myLatlng,
  45.                   mapTypeId: google.maps.MapTypeId.ROADMAP
  46.             }
  47.             mapa = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);    
  48.  
  49.             google.maps.event.addListener(mapa, 'click', function (event){
  50.                 creaMarcador(event.latLng)
  51.                 });
  52.  
  53.             }
  54.  
  55.             function creaMarcador(localizacion){                
  56.                 // Crear marcador
  57.                    if (marcador) marcador.setMap(null);                  
  58.                    marcador = new google.maps.Marker({
  59.                    position: localizacion,
  60.                    draggable: true,
  61.                    map: mapa
  62.                 });
  63.                 mapa.setCenter(localizacion);
  64.                  // Rellenar X e Y
  65.                 document.formulario.latitud.value=localizacion.lat();
  66.                 document.formulario.longitud.value=localizacion.lng();
  67.  
  68.                 // Modificar X e Y al mover
  69.                 google.maps.event.addListener(marcador,'drag',function(event){
  70.                     document.formulario.latitud.value=event.latLng.lat();
  71.                     document.formulario.longitud.value=event.latLng.lng();
  72.                     //mapa.setCenter(localizacion);
  73.                 });
  74.  
  75.             }
  76.  
  77.             function direc(){            
  78.             var dire = document.getElementById("direccion").value;            
  79.               geocoder.geocode( {'address': dire}, function(results, status) {
  80.             if (status == google.maps.GeocoderStatus.OK) {
  81.                   mapa.setCenter(results[0].geometry.location);
  82.                   creaMarcador(results[0].geometry.location);
  83.               }
  84.              else {
  85.                   alert("Geocode was not successful for the following reason: " + status);
  86.             }                
  87.             });
  88.  
  89.             }
  90.             </script>
  91.     </head>
  92.     <body onload="inicializar();toggleDivOL('toHide');">
  93.         <h1>Alta de Contacto:</h1>
  94. <div id="toHide" class="testDiv" >
  95.         <form action="save.php" method="post" name="formulario">
  96.                 <table>
  97.                 <tr><td>
  98.                
  99.  
  100.             Dirección: <input type="text" id="direccion" name="direccion" onchange="direc()"/>
  101.             <!--<input type="button" name="boton" value="Busca" onclick="direc()"/>--><br/><br/>
  102.  
  103.  
  104.  
  105.             <br/><br/>
  106.             <input type="submit" value="Guardar"/>
  107.             <input type="reset" value="Limpiar"/>
  108. </td><td>                      
  109.  
  110.  
  111.             X: <input type="text" name="latitud"/>
  112.             Y: <input type="text" name="longitud"/><br/><br/>
  113.             <div id="map_canvas" style="width:500px;height:500px">&nbsp;</div>                     
  114.                        
  115. </td></tr>                  </table>                   
  116.         </form>
  117.                 </div>
  118. <a href="javascript:toggleDivOL('toHide');" id="link_boton" title="Hide the DIV">añadir</a>
  119.     </body>
  120. </html>
  121.  
  122.  
  123. un saludo amigo

Etiquetas: conflicto, formulario, funcion, html, input, jquery, js, muestra, php, todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:45.