Foros del Web » Programando para Internet » Javascript »

Problema al Ocultar/mostrar DIV

Estas en el tema de Problema al Ocultar/mostrar DIV en el foro de Javascript en Foros del Web. Buenas, He conseguido crear un script para ocultar/mostrar un determinado DIV, lo que pasa es que no me elimina el espacio que ocupa este div ...
  #1 (permalink)  
Antiguo 16/11/2009, 16:49
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Problema al Ocultar/mostrar DIV

Buenas,

He conseguido crear un script para ocultar/mostrar un determinado DIV, lo que pasa es que no me elimina el espacio que ocupa este div cuando lo oculto.
Es decir, si el div que muestro/oculto ocupa 100px de height, cuando lo oculto sigue habiendo 100px de height en medio de la página.

Aquí dejo el código completo:

Código html:
Ver original
  1. <script LANGUAGE="javascript">
  2. function oculta(){
  3.  document.getElementById('banner-top').style.visibility = "hidden";
  4. }
  5. function muestra(){
  6.  document.getElementById('banner-top').style.visibility = "visible";
  7. }
  8. #banner-top{
  9. position:relative;
  10. width:960px;
  11. height:50px;
  12. margin:0 auto;
  13. margin-left:auto;
  14. margin-right:auto;
  15. padding-bottom:5px;
  16. background:yellow;}
  17.  
  18. #banner-top .message{
  19. /*background-color:#fff;*/
  20. padding-top:10px;
  21. padding-bottom:5px;}
  22.  
  23. #banner-top .close{position:absolute;
  24. top:10px;
  25. right:10px;
  26. font-size:11px;}
  27.  
  28. #banner-top .close a{
  29. color:#808080;
  30. text-decoration:none;}
  31.  
  32. </head>
  33. <div> PRUEBA ARRIBA</div>
  34. <div id="banner-top">
  35.     <div class="message">
  36.         <p><strong>Noticia: <a href="#">conocelos en el blog oficial</a> y sigue las <a href="#">reacciones en Twitter</a></strong></p>
  37.         <div class="close"><a title="Cerrar Mensaje" href="#">Cerrar <img alt="Cerrar mensaje" src="close.png"/></a></div>
  38.     </div>
  39. </div>
  40. <div> PRUEBA ABAJO </div>
  41. <a href="#" onclick="oculta()">Ocultar logo</a>
  42. <a href="#" onclick="muestra()">Muestrar logo</a>
  43. </body>
  44. </html>

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 16/11/2009, 16:54
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema al Ocultar/mostrar DIV

sin mirar mucho el codigo, ya me imaginaba que estarias usando el estilo visibility. visibility solo hace eso, controlar la visibilidad de un elemento, ocultar o mostrar. pero este no cambia el modo de renderizacion. para ello tienes que usar display en lugar visibility. asignando el valor display: none oculta el elemento más "elimina" el contenido del flujo. es decir, el resto del contenido que le rodea se acomodan segun el espacio liberado por el elemento oculto con display:none.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 16/11/2009, 17:09
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Problema al Ocultar/mostrar DIV

Cita:
Iniciado por zerokilled Ver Mensaje
sin mirar mucho el codigo, ya me imaginaba que estarias usando el estilo visibility. visibility solo hace eso, controlar la visibilidad de un elemento, ocultar o mostrar. pero este no cambia el modo de renderizacion. para ello tienes que usar display en lugar visibility. asignando el valor display: none oculta el elemento más "elimina" el contenido del flujo. es decir, el resto del contenido que le rodea se acomodan segun el espacio liberado por el elemento oculto con display:none.
Muchas gracias zerokilled, tenías razón estaba usando la propiedad equivocada :)

Código javascript:
Ver original
  1. <script LANGUAGE="javascript">
  2. function oculta(){
  3.  document.getElementById('banner-top').style.display = "none";
  4. }
  5. function muestra(){
  6.  document.getElementById('banner-top').style.display = "block";
  7. }
  8. </script>
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 09:08.