Foros del Web » Programando para Internet » Javascript »

Menú desplegable

Estas en el tema de Menú desplegable en el foro de Javascript en Foros del Web. Hola! Quisiera realizar un menú desplegable, y antes estoy haciendo unas pruebas... pero me paro en una cosa: Cuando se pasa el mosue al div ...
  #1 (permalink)  
Antiguo 07/08/2009, 08:32
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
Menú desplegable

Hola!

Quisiera realizar un menú desplegable, y antes estoy haciendo unas pruebas... pero me paro en una cosa:

Cuando se pasa el mosue al div "menuoculto", este desaparece.

Lo que intento hacer es que este no desaparezca, hasta que el ratón no esté fuera del todo, es decir, ni en el div de los Menús principales, ni en el de menuoculto.

Espero haberme explicado, les dejo el código.

Código javascript:
Ver original
  1. <head>
  2. <script language="javascript">
  3.  
  4. //variables de InnerHtml
  5.  
  6. var menua='<a herf="#">Men&uacute; oculto A</a>';
  7.  
  8. var menub='<a herf="#">Men&uacute; oculto B</a>';
  9.  
  10.  
  11. function ocultar(){
  12.  
  13.  document.getElementById('menuoculto').style.visibility = "hidden";
  14.  
  15. }
  16.  
  17.  
  18. function mostrar(what){
  19.  
  20. switch(what){
  21.  
  22. case "menua":
  23.  
  24. var MENUHTML=menua;
  25.  
  26. break;
  27.  
  28. case "menub":
  29.  
  30. var MENUHTML=menub;
  31.  
  32. break;
  33.  
  34. }
  35.  
  36.  document.getElementById('menuoculto').innerHTML = MENUHTML;
  37.  
  38.  document.getElementById('menuoculto').style.visibility = "visible";
  39.  
  40. }
  41. </script>
  42.  
  43.  
  44. </head>
  45.  
  46. <body>
  47.  
  48. <div style="overflow:auto;">
  49.  
  50. <div style="width:150px;float:left;" onMouseOver="mostrar('menua')" onMouseOut="ocultar()">Men&uacute; A</div>
  51.  
  52. <div style="width:150px;float:left;" onMouseOver="mostrar('menub')" onMouseOut="ocultar()">Men&uacute; B</div>
  53.  
  54. </div>
  55.  
  56. <div id="menuoculto" style="border-top:1px solid #666666;padding:6px;visibility:hidden;"></div>

Saludos y espero que puedan ayudarme
  #2 (permalink)  
Antiguo 07/08/2009, 09:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Menú desplegable

En lugar de usar el evento onmouseout de cada div del menú, coloca el div menuoculto dentro del mismo contenedor que los elementos del menú y usa el evento onmouseout del contenedor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 07/08/2009, 12:43
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
Respuesta: Menú desplegable

Gracias por tu respuesta... Ahora tengo esto en el body (el javascript es el mismo)... pero siga haciendo igual, cuando sitúo el cursor sobre el "menuoculto", se cierra

Código HTML:
 <div style="overflow:auto;border:1px solid blue;" onMouseOut="ocultar()">


<div style="overflow:auto;">

<div style="width:150px;float:left;" onMouseOver="mostrar('menua')">Men&uacute; A</div>

<div style="width:150px;float:left;" onMouseOver="mostrar('menub')">Men&uacute; B</div>

</div>

<div id="menuoculto" style="border-top:1px solid #666666;padding:6px;visibility:hidden;"></div>

  </div> 
Saludos y espero que puedan seguir ayudando
  #4 (permalink)  
Antiguo 07/08/2009, 21:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Menú desplegable

Ya veo.

Creo que será mejor en este caso anidar los menús de acuerdo al elemento que lo activa (y, mejor aún, hacerlo más semántico usando una lista desordenada en lugar de divs).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 08/08/2009, 07:37
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
Respuesta: Menú desplegable

Gracias por tu respuesta de nuevo, pero no entiendo a qué te refieres con anidar...
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 17:43.