2008-09-19 14 views
16

Estoy buscando un menú desplegable de JavaScript.¿Cuál es el mejor menú desplegable de Javascript?

Debe ser el menú accesible más simple y más elegante que también funciona en IE6 y Firefox 2. Estaría bien si funcionara en una lista no numerada (ul) para que el usuario pueda usar la página sin soporte de JavaScript.

¿Cuál recomienda y dónde puedo encontrar el código para dicho menú?

Respuesta

12

Creo que el menú jQuery superfish es fantástico y fácil de usar:

http://users.tpg.com.au/j_birch/plugins/superfish/

, JavaScript es no se requiere, y se basa en las listas UL unorder válidos simples.

+0

Eso es bueno, pero aborrezco * los menús desplegables en las páginas web que toman medidas sin que yo haga clic; conduce a cosas que parecen oscurecer el contenido cuando no tomé ninguna acción abierta para que eso haya sucedido. – delfuego

+0

¿Qué tiene eso que ver con superfish? No hace eso. – Buzz

+0

Encontré esto hermoso y fácil de configurar. Y la mejor parte es que funciona en IE6, IE7 y Firefox (aún no lo he probado con otros). – Germstorm

3

A List Apart - Dropdowns

que haría uso de una solución CSS sólo como el de arriba para que el usuario todavía se pone menús desplegables incluso con JavaScript desactivado.

1

Me gusta Stickman's accordion, lo que dependiendo de cómo quiera que se comporte puede ser un buen efecto.

2

aquí está mi respuesta usando jQuery:


jQuery.fn.ddnav = function() { 
     this.wrap(""); 
     this.each(function() { 
       var sel = document.createElement('select'); 
       jQuery(this).find("li.label, li a").each(function() { 
         jQuery("<option>").val(this.href ? this.href : '').html(jQuery(this).html()).appendTo(sel); 
       }); 
       jQuery(this).hide().after(sel); 
     }); 
     this.parent().find("select").after("<input type=\"button\" value=\"Go\">"); 
     var callback = function(button) { 
       var url = jQuery(button.target).parent("div").find("select").val(); 
       if(url.length) 
         window.open(url, "_self") 
     }; 
     this.parent().find("input[type='button']").click(callback); 
     this.parent().find("select").change(callback); 
     return this; 
}; 

Y luego en el controlador onready:


    $("ul.dropdown_nav").ddnav(); 

Pero me gustaría señalar que estos son terribles para la facilidad de uso. Es mejor usar una lista y mostrarle a la gente todas las opciones a la vez, y es mejor no irse después de una selección y/o requerir que se presione un botón diferente para llegar a donde quieren.

Creo que es el mejor de usar que nunca lo anterior (y yo escribimos el código!)

2

Para los puristas: http://www.grc.com/menudemo.htm Absolutamente ninguna JavaScript, CSS-pura única - y funciona con prácticamente todos los navegadores.

Un poco de ajuste puede hacer que se vean tan bueno como los menús de lujo (jQuery, etc.)

Pero también hemos utilizado jQuery, YUI! y otros. YUI! tiene excelentes opciones de accesibilidad integradas, si eso es un requisito para los menús activados por JavaScript.

- Andrew

1

He sido un fanático (descarado) de Yahoo! Biblioteca de interfaz de usuario. They have a nice menubar system que es fácil de implementar. Gran soporte para navegadores cruzados

Probablemente pueda obtener algo similar de los otros marcos de Javascript populares, como jQuery, también.

+0

Este es un ejemplo del uso de YUI 3 para hacer un menú desplegable: http://jsbin.com/udigof/1 – relipse

Cuestiones relacionadas