Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/03/2003, 06:39
Avatar de sci-fi
sci-fi
 
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 2 meses
Puntos: 0
hola,

si, la cuestión de los eventos para controlar los menúes es bastante problemática. el problema es éste:

1) si en el enlace no le ponés un onmouseout=ocultar el menu, qué pása si el menú está abajo o al costado? que por casualidad, si el usuario sale del enlace llevando el mouse hacia arriba (o algún otro lado) sin pasar el mouse por el menú, éste quedará visible...

2) cómo hacer que al ser llevado el mouse sobre el menú, al salir de él el menú vuelva a ocultarse...

hago así: Para el punto 2): agrego exactamente los eventos que agregué a los enlaces, pero a los menúes en sí. Es decir, te quedan cuatro eventos idénticos para cada menú (dos pares: out y over para los enlaces, lo mismo para los menúes). Esto funciona bien inclusive cross-browser. Tanto en MSIE como en Netscape/Mozilla.

para el punto 1), como dicho arriba, dejo el evento onmouseout para el enlace. Si el menú está bien posicionado, adyacente al enlace, no te pasa que el menú vuelve a ocultarse al salir del enlace. Por qué?, porque el menú tiene un evento onMouseOver="mostrar el menú". Quiere decir, que al salir el mouse del enlace, se activa el onMouseOut del enlace, pero al llegar el mouse al menú en solución de continuidad, se activa el evento onMouseOver del menú, quedando el menú visible, puesto que el menú está pegado (tiene que estar pegado, bien consecutivo al enlace).

Con respecto a la función para ocultar los menúes que no te funciona: eso tenés que verlo en cómo está armado en el script; o sea fijate en la ayuda del script o en la explicación del script, o investigalo. Por lo pronto, este código embebido en el HTML, en la tag del menu (DIV o SPAN), te puede ocultar el menú:

onMouseOut=" this.style.visibility = 'hidden'; "

saludos
__________________
webdeveloper
http://www.javascripters.com.ar/
diseño web y tecnología

Última edición por sci-fi; 26/03/2003 a las 06:42