Cerrar video

Crea un hermoso menú hamburguesa con divi theme builder

por | Abr 14, 2020 | Tutorial gratuito | 30 Comentarios

Hola bienvenido a este nuevo tutorial dónde aprenderás a crear un hermoso menú hamburguesa con divi theme builder.

En este tutorial aprovecharemos el nuevo y potente generador de temas de divi para crear un menú totalmente diferente al que viene con divi por defecto. Este efecto consiste en que al dar click sobre el icono de hamburguesa se nos desplaza el menú de la parte superior con un efecto de movimiento. Además el icono de hamburguesa hace una transición a un icono en forma de equis (X) y haciendo click en este botón se volverá a ocultar el menú, la verdad me entretuve mucho haciendo este ejercicio, así que aprovéchalo.

Por cierto, si te estás preguntando si este menú es responsive, claro que es responsive, funciona tanto en computadoras, tabletas y móviles.

En el tutorial vamos a necesitar de unos fragmentos de código, no te preocupes me pase horas logrando realizar este efecto para compartirlo contigo y dejarte el código a continuación para que solo copies y pegues.

Este es el código del icono de menú hamburguesa (el de las rayitas):

<div id="iconoHamburguesa">
<span></span>
<span></span>
<span></span>
<span></span>
</div>

Aquí te dejo el código CSS general (icono hamburguesa):

.mover-icono {
	top: 250px !important; 
}

.desplazar-menu {
	transform: translateY(0px) rotateX(0deg) !important;
}

.seccion-menu {
  position: fixed;
  width: 100%;
}

#iconoHamburguesa {
  position: fixed;
  top: 30px;
  right: 40px;
  width: 45px;
  height: 45px;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: pointer;
}
#iconoHamburguesa span {
  display: block;
  position: absolute;
  height: 6px;
  width: 100%;
  background: #000000;
  border-radius: 4px;
  opacity: 1;
  left: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .25s ease-in-out;
  -moz-transition: .25s ease-in-out;
  -o-transition: .25s ease-in-out;
  transition: .25s ease-in-out;
}

#iconoHamburguesa span:nth-child(1) {
  top: 0px;
}

#iconoHamburguesa span:nth-child(2),#iconoHamburguesa span:nth-child(3) {
  top: 14px;
}

#iconoHamburguesa span:nth-child(4) {
  top: 28px;
}

#iconoHamburguesa.open span:nth-child(1) {
  top: 18px;
  width: 0%;
  left: 50%;
}

#iconoHamburguesa.open span:nth-child(2) {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
}

#iconoHamburguesa.open span:nth-child(3) {
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

#iconoHamburguesa.open span:nth-child(4) {
  top: 18px;
  width: 0%;
  left: 50%;
}


@media only screen and (max-width: 768px) {
  .mover-icono {
		top: 20px!important; 
	}
  .seccion-menu {
  	position: absolute;
    margin-top: 65px;
	}
	#iconoHamburguesa {
    position: absolute;
  	top: 20px;
  	right: -10px;
    width: 35px;
    height: 35px;
  }
  #iconoHamburguesa span {
    height: 5px;
  }
  #iconoHamburguesa span:nth-child(2),#iconoHamburguesa span:nth-child(3) {
  top: 11px;
}
#iconoHamburguesa span:nth-child(4) {
  top: 22px;
}
}

Aquí tienes otro fragmento de código CSS que necesitamos pegar en la sección que contiene el diseño del menú:

transform: translateY(-100px) rotateX(-90deg);
transform-style: preserve-3d;
perspective: 2000px;
transition: 0.3s;

Aquí tienes el código jQuery:

jQuery(document).ready(function( $ ) {
  $('#iconoHamburguesa').click(function(){
		$(this).toggleClass('mover-icono');
    $(this).toggleClass('open');
		$('.seccion-menu').toggleClass('desplazar-menu');
	});
});

¿Te ha gustado este tutorial? 🚀

¡Los Tutoriales Premium te van a encantar! Desde solo $10 USD al mes accede a más de 200 (¡y contando!) tutoriales únicos y exclusivos sobre Divi y WordPress. ¡Únete ahora y aumenta al 200% tus habilidades de diseño web con Divi!

Tutoriales Relacionados

30 Comentarios

  1. manolo

    Me sale la hamburguesa de color negro. Y no consigo ponerla en blanco que es como la necesito. Hay forma?
    Gracias

    Responder
    • Oscar Viedma

      Hola Manolo claro que hay forma, en el código CSS busca estas clases: «#iconoHamburguesa span» y reemplaza dónde dice «background: #000000;» por «background: #ffffff;» sin las comillas obviamente.

      Responder
  2. MANOLO

    Muchas gracias. Está muy chulo. Pero buscaré la forma de poner solo el menú hamburguesa y que las distintas opciones funcionen normalmente sin desplazar la pantalla. Quiero que sea tal como en el móvil… pero en el PC. Pero he guardado sus códigos para futuros proyectos. Muchas gracias.

    Responder
    • Oscar Viedma

      Genial Manolo, seguramente más adelante te podrá servir. También tengo uno premium que te puede servir, aquí te lo dejo por si algún día quieres darle un vistazo.

      Responder
    • Armando

      Hola Óscar, te felicito por este tutorial, está muy chulo.

      Tengo una duda: se puede poner un logotipo en el lado izquierdo de la página alineado al menú hamburguesa?

      Muchas gracias por estos tutoriales, más adelante me suscribiré para poder ver los tutoriales premium.

      Responder
      • Oscar Viedma

        Hola Armando muchas gracias.

        Podrías crear una nueva sección con un módulo imagen y jugar con la posición fixed o absoluta desde Ajustes del módulo / avanzado / puesto…

        Responder
        • Armando

          Muchas gracias! Queda muy bien con las indicaciones que me has dado. Una última duda, es posible hacer desaparecer el contenido del menú hamburguesa abierto (y que la X se convierta de nuevo a las tres rayitas) cuando el usuario haga scroll.

          Responder
          • Oscar Viedma

            Muy bien Armando.
            Podría realizarse aunque deberíamos implementar otro tipo de jquery. Me encantaría ayudarte pero me llevará tiempo y en estos momentos ando ocupado con otras tareas. Si quieres puedes contratar mis servicios para que implemente la funcionalidad en tu sitio, o bien, esperar hasta cuando tenga tiempo disponible para poder practicar lo que deseas.

  3. Alexander

    buenas noche hise todos los pasos dos veces y cuando selecciono las rayitas no me aparece el menu sino el codigo fuente mas abajo

    nose que estoy haciendo mal

    pero hice los pasos como tu dices en el video y nada

    Responder
    • Oscar Viedma

      Hola Alexander seguramente se te está yendo un símbolo o signo. Eso pasa cuándo te hizo falta código o tienes un error de sintaxis. ¿Cuál es tu sitio?

      Responder
  4. Jose

    Hola que tal chicos, como están?

    Che chicos, no hay manera de poner el menú en el lado izquierdo ??
    en el derecho jaajja no sé pero me parece hasta anti estético jaaajajja

    si hay solución me avisan, les agradezco

    Responder
    • Oscar Viedma

      Hola José, sí, por supuesto que es posible. Solamente busca en el código CSS el ID: #iconoHamburguesa y reemplaza right: 40px; por left: 40px;

      Responder
  5. Armando

    Hola Oscar, una pregunta, se puede cambiar las tres rayitas del menú por un texto?

    Muchas gracias por todo

    Responder
    • Oscar Viedma

      Hola Armando, en el código HTML de las rayitas puedes borrar todos los span y colocarle un texto dentro de las etiquetas < p > TEXTO < / p> (borras los espacios de separación)

      Responder
  6. Carlos

    Hola Oscar, ayuda please, como puedo mover el menú hamburguesa, se me sale de la pantalla al lado derecho del todo queda fuera, cómo puedo moverlo para que quede como a ti.
    Muchas gracias.

    Responder
    • Oscar Viedma

      Hola Carlos, necesito ver tu sitio para poderte ayudar. ¿Cuál es la url?

      Responder
  7. Armando

    Hola Oscar, una pregunta, tendrías el Json de este tutorial? Mil gracias

    Responder
  8. Maria Gandarillas

    Geniales tus videos como siempre.
    ¿Cómo puedo hacer que al abrir el menú la X no se desplaze? Quiero que se quede en el mismo lugar que la hamburguesa. Gracias

    Responder
    • Oscar Viedma

      Hola Maria, puedes borrar del código jQuery esta línea:

      $(this).toggleClass(‘mover-icono’);

      Responder
  9. DIEGO

    hola brother no se si es mi sitio o por que lo maqueto en local pero hice tus mismo pasos y antes de ocultar el menu con codigo aparece el icono y inicio etc y apenas lo oculto y le doy en el maqueteador builder le doy en las flechas aparece el codigo de div y cuando voy a ver como quedo en incognito aparece sin iconos y separados con espacios blancos super raro

    Responder
    • Oscar Viedma

      Hola Diego, a ver compárteme la url de tu web amigo si es que todavía tienes este problema. Le daré un vistazo.

      Saludos.

      Responder
  10. david Pérez

    Hola Oscar;

    Estoy metiendo un módulo deslizante de anchura completa con una única imagen de fondo. no sé en qué posición debo ubicar esa nueva sección para que no genere conflicto entre el menú y la imagen.

    Cuando el menú está solo funciona perfectamente , pero con la imagen al darle click en la hamburguesa no aparece la x y el contenido en la versión de celular… Bueno he tenido problemas. Ya he hecho el ejercicio tres veces y aun no lo logré.

    muchas gracias

    Responder
    • Oscar Viedma

      Hola David, ¿Cuál es la url de tu ejercicio para darle un vistazo?

      Responder
  11. Anibal

    ¡Genial! Es lo que estuve buscando. Lo que sí, me gustaría saber desde qué parte del código se podría cambiar el tamaño del menú hamburguesa, para que quede más pequeño.
    ¡Está excelente el tutorial, gracias por el código!

    Responder
    • Oscar Viedma

      Hola Anibal para cambiar el tamaño del icono debes jugar con las propiedades CSS widht y height de #iconoHamburguesa.

      También con el height: 6px; de #iconoHamburguesa span

      Responder
  12. Juan Carlos

    Hola Oscar, en mi web (https://aldemedianoche.com.ar) el menu hamburguesa en cabecera no se despliega sobre el cuerpo de la public, busque por todos lados comparandolo con la web de un amigo que yo le hice donde sí funciona. Tuve el mismo prob en vista escritorio, pero me canse y elimine el sub-menú incorporándolo al menu princ. En vista Constructor Visual el menu se despliega (en el «mundo real» no) pero se advierte que el ancho del menu al desplegarse es apenas más ancho que el icono hamburguesa, con las elementos del menu desbordando el ancho. Si pudieras darme una manito, muy agradecido..
    muchas gracias

    Responder
    • Oscar Viedma

      Hola Juan Carlos, disculpa estaba de vacaciones por unos días. He vuelto pero no ya no logro ver tu página en línea, me arroja un error al entrar a la url

      Responder
  13. Lucas

    Hola! Excelente tutorial! te hago una consulta, el menú de hamburguesa me funciona perfecto en desktop pero en mobile no me queda fijo en la posición. Cuando hago scroll, se mueve con el resto de la página. No logro encontrar en el css como ajustarlo.
    Espero me puedas ayudar, muchas gracias!

    Responder
    • Oscar Viedma

      Hola Lucas, solamente entra a los ajustes de la sección / Avanzado / Puesto y selecciona fixed o fijado…

      Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tutoriales Exclusivos

Tutoriales exclusivos OV Divi

Lleva tus sitios web creados con divi al siguiente nivel.

Accede a tutoriales exclusivos y únicos de divi y saca el máximo provecho del mejor tema y constructor visual para WordPress.

$10 USD / mes

Pin It on Pinterest