Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/08/2015, 09:53
Avatar de fede5426
fede5426
 
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 11 meses
Puntos: 208
Respuesta: Convertir lista en boton desplegable sólo en móvile

Son varias cosas las que hay que hacer..

En primer lugar, agregar un botón que solo sera visible en dispositivos moviles.
En segundo lugar, hacer unos cuantos cambios al diseño de la lista:

Si antes estaba asi:

Código CSS:
Ver original
  1. .boton{
  2.     display:none;
  3. }
  4.  
  5. nav{
  6.     width:100%;    
  7.     border-bottom:1px solid #354f64;
  8. }
  9.  
  10. nav ul{
  11.     width:100%;
  12.     margin:0;
  13.     background-color:#f3f3f3;
  14. }
  15.  
  16. nav ul li{
  17.     display:inline-block;
  18. }

Ahora debería estar algo asi:

Código CSS:
Ver original
  1. @media screen and (max-width:480px){
  2.  
  3.    .boton{
  4.         display:block;
  5.         border-radius:5px;
  6.         width:35px;
  7.         cursor:pointer;
  8.     }
  9.  
  10.    nav{
  11.         position:relative;
  12.     }
  13.    
  14.     nav ul{
  15.         width:75%;
  16.         position:absolute;
  17.         top:100%;
  18.         left:-100%;
  19.         padding:0;
  20.     }
  21.    
  22.     nav ul li{
  23.         display:block;
  24.     }
  25. }

Con estos cambios logras que el menú se convierta en una lista vertical, que aparezca "flotando" (por la posición absoluta) debajo del nav (donde va a estar solo el botón) y que esté oculto a la izquierda (con left: -100%).

Y en tercer y último lugar, darle funcionalidad al boton con Javascript, o Jquery como lo hice en mi ejemplo:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  
  3. var contador = 1;
  4.  
  5. $('.boton').click(function(){
  6.             if(contador == 1){
  7.                 $('nav ul').animate({"left" : "0"});
  8.                 contador = 0;
  9.             }
  10.             else{
  11.                 contador = 1;
  12.                 $('nav ul').animate({"left" : "-100%"});
  13.             }
  14.         });
  15.  
  16. });

Demo

Claro, todo esto agregando los estilos que creas necesarios en tu menú.. en la demo están agregados como para que quede más presentable

Saludos