Foros del Web » Programando para Internet » Javascript »

abre div cierra div, que falla.

Estas en el tema de abre div cierra div, que falla. en el foro de Javascript en Foros del Web. Hola. El siguiente script lo que hace es mostrar u ocultar un div haciendo click en un enlace. El caso es que cuando se carga ...
  #1 (permalink)  
Antiguo 13/12/2011, 07:58
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 21 años, 6 meses
Puntos: 1
abre div cierra div, que falla.

Hola.

El siguiente script lo que hace es mostrar u ocultar un div haciendo click en un enlace.
El caso es que cuando se carga la web el div si se ve, hasta que termina de cargarse la web, para despues cerrarse automaticamente, cuando lo que deberia pasar es que no se deberia ver hasta que no se pinchase el link:

Código HTML:
<script language="JavaScript" type="text/JavaScript">
//abre form
function muestra_oculta(id){
if (document.getElementById){ //se obtiene el id
var el = document.getElementById(id); //se define la variable "el" igual a nuestro div
el.style.display = (el.style.display == 'none') ? 'block' : 'none'; //damos un atributo display:none que oculta el div
}
}
window.onload = function(){/*hace que se cargue la función lo que predetermina que div estará oculto hasta llamar a la función nuevamente*/
muestra_oculta('contenido_a_mostrar');/* "contenido_a_mostrar" es el nombre que le dimos al DIV */
}
</script> 
Código HTML:
<a style='cursor: pointer;' onclick="muestra_oculta('contenido_a_mostrar')" title="">abrir</a>
	  <div id="contenido_a_mostrar">xcgncvncvncvvbmvbm></div> 
Cuando la web no tarda en cargar apenas se nota, pero cuando cargan imagenes, fondos, texto, banners,... se ve que se carga y luego se oculta.
  #2 (permalink)  
Antiguo 13/12/2011, 10:53
Avatar de zeudio  
Fecha de Ingreso: enero-2002
Mensajes: 314
Antigüedad: 22 años, 10 meses
Puntos: 4
Respuesta: abre div cierra div, que falla.

pues creo que deberías establecer el valor de style display:none; desde el principio dentro de tu div para que no se muestre cuando se está cargando
  #3 (permalink)  
Antiguo 13/12/2011, 14:40
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 21 años, 6 meses
Puntos: 1
Respuesta: abre div cierra div, que falla.

Necesitaría otra solucion, asi no me funciona bien tampoco.
  #4 (permalink)  
Antiguo 13/12/2011, 14:51
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 4 meses
Puntos: 105
Respuesta: abre div cierra div, que falla.

tu codigo javascript deberias ser asi:

Código HTML:
<script language="JavaScript" type="text/JavaScript">
function muestra_oculta(id){
if (document.getElementById(id)){ //si existe el id
var el = document.getElementById(id); //se define la variable "el" igual a nuestro div
el.style.display = (el.style.display == 'none') ? 'block' : 'none'; //damos un atributo display:none que oculta el div
}
}
window.onload = function(){/*hace que se cargue la función lo que predetermina que div estará oculto hasta llamar a la función nuevamente*/
muestra_oculta('contenido_a_mostrar');/* "contenido_a_mostrar" es el nombre que le dimos al DIV */
}
</script> 
Y aun asi.... te comento al igual que "zeudio", deberias ocultar al inicio no con "onload" sino con css.
Es decir, quitar las lineas del onload javascript y colocar en el html, algo asi:
<a style='cursor: pointer;' onclick="muestra_oculta('contenido_a_mostrar')" title="">abrir</a><div id="contenido_a_mostrar" style="display: none;">xcgncvncvncvvbmvbm></div>

Claro que es una manera, la otra seria con el id o agregandole una clase, hacer lo mismo pero en una hoja css.

Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #5 (permalink)  
Antiguo 16/12/2011, 12:18
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 21 años, 6 meses
Puntos: 1
Respuesta: abre div cierra div, que falla.

gracias chicos.

Etiquetas: cierra
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 06:28.