Publicado el 05 de Octubre del 2006
Se han publicado en la red unos cuántos artículos comentando algunos inconvenientes de los menús desplegables. En esta ocasión se me ocurrió crear un menú desplegable (otro) tratando de corregir los inconvenientes que en estos artículos se comentan.
Se trata de crear un menú mediante una lista no ordenada (ul) de links y con un id Menu. Supongamos que tenemos un listado de artículos y tutoriales para algunos lenguajes:
Los elementos de lista que definan a una lista anidada los marcamos con negrita o cualquier otro tag de marcado que prefiramos. En el ejemplo vamos a usar el tag b para negritas.
Tal y como está nuestro menú de links se podrá visualizar en cualquier dispositivo, independientemente de si soporta o no CSS y/o Javascript.
Lo siguiente que haremos será crear una hoja de estilos para cuando el menú se cargue en un dispositivo con soporte para CSS pero sin soporte Javascript o algún navegador con Javascript desactivado. A esta hoja de estilos le damos por nombre de archivo estilosmenusinjs.css y la vinculamos al documento que contiene el menú de links asignándole un atributo title con el mismo valor que al nombre de archivo.
<link type="text/css" title="estilosMenusinjs"
rel="stylesheet" href="estilosmenusinjs.cs" />
Finalmente creamos una segunda hoja de estilos para el menú en su modo desplegable con Javascript. Esta hoja de estilos será vinculada al documento directamente con Javascript, de forma que sólo será cargada si el dispositivo que carga la página soporta Javascript y además lo tiene activado. El nombre de archivo que le daremos a esta hoja de estilos será estilosmenujs.css.
El Javascript del menú se encarga de alterar lo necesario para convertir
la lista de links en un menú desplegable. Substituye los elementos
marcados en negritas por links para poder navegarlos mediante el teclado en
caso necesario.
El menú evita usar eventos de ratón. Se abren las opciones mediante
un enter (intro) cuando el foco está sobre ese elemento y
se cierran de igual forma. Usando el ratón (mouse) se abre y cierra
con click. Igual cuando el ratón sale del menú éste se
cierra al cabo de unos segundos (esto no sucede cuando se usa el menú
con el teclado).
Todos los códigos incluídos los de la página han sido paridos y tecleados por tunait.com. subir