Responsive Nav es un pequeño plugin de JavaScript (pesa sólo 1,7 KB minimizado y no depende de ninguna biblioteca externa), que permite crear menús de navegación adaptables a pantallas pequeñas (Smartphones).

El plugin utiliza eventos táctiles y transiciones CSS3 para un mejor rendimiento. También contiene una solución "inteligente" que hace posible la transición de altura, de height: 0 a height: auto, que normalmente no es posible con transiciones CSS3. Además, funciona aún con el JavaScript desactivado.

EJEMPLO BÁSICO DE USO:

<html>    
<head>
    <!-- Añadimos los archivos CSS y JS necesarios -->
    <link rel="stylesheet" href="responsive-nav.css">
    <script src="responsive-nav.js"></script>
</head>    
<body>
    <!-- HTML del menú -->
    <div id="nav">
        <ul>
            <li><a href="#">Menu Item 1</a></li>
            <li><a href="#">Menu Item 2</a></li>
            <li><a href="#">Menu Item 3</a></li>
            <li><a href="#">Menu Item 4</a></li>
            <li><a href="#">Menu Item X</a></li>
        </ul>
    </div>
    <!-- Ejecutamos el plugin agregando el siguiente código antes del tag </body> -->
    <script>
        var navigation = responsiveNav("#nav");
    </script>
</body>
</html>

El plugin también cuenta con opciones de configuración y además, funciona en todos los navegadores de escritorio y móviles, incluyendo IE 6 o superior.

Web: http://responsive-nav.com/
Demo: http://responsive-nav.com/demo/
Descarga: https://github.com/viljamis/responsive-nav.js