Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

314
Vistas
Abrir modal usando JavaScript (no jQuery)

Estoy tratando de reutilizar un código que obtuve de Codepen. Está escrito usando jQuery pero quiero reescribir el script usando JavaScript.

El codepen original (ver: Codepen ) muestra algunas formas de abrir una ventana modal usando animación. Estoy usando la animación 'DESPLEGABLE'.

El Codepen usa el siguiente jQuery:

 $('.button').click(function(){ var buttonId = $(this).attr('id'); $('#modal-container').removeAttr('class').addClass(buttonId); $('body').addClass('modal-active'); }) $('#modal-container').click(function(){ $(this).addClass('out'); $('body').removeClass('modal-active'); });

Estoy tratando de reescribir esto como JavaScript.

Tengo el modal para abrir con el siguiente JavaScript:

 let button = document.getElementById('start'); let body = document.body; button.addEventListener('click', () => { document.getElementById('modal-container').classList.add('one'); body.classList.add("modal-active"); });

¡PERO, no puedo hacer que se cierre!

Intenté lo siguiente pero no funciona correctamente (en comparación con el Codepen original):

 let button2 = document.getElementById('modal-container'); button2.addEventListener('click', () => { document.getElementById('modal-container').classList.add('out'); document.getElementById('modal-container').classList.remove('one'); body.classList.remove("modal-active"); });

Esperando que alguien pueda mostrarme dónde me he equivocado.

Gracias.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Tal vez intente no eliminar la clase "uno" cuando haga clic en el botón2

 let button2 = document.getElementById('modal-container'); button2.addEventListener('click', () => { document.getElementById('modal-container').classList.add('out'); body.classList.remove("modal-active"); });

Porque cuando inspecciono el código en el codepen, el div con el "contenedor modal" todavía tiene la clase "uno" cuando cerramos el modal

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Denunciar

0

Gracias a Indana Rishi, llegué al siguiente código que, aunque probablemente no sea tan elegante, ciertamente funciona:

 let button = document.getElementById('start'); let body = document.body; button.addEventListener('click', () => { document.getElementById('modal-container').classList.remove('one'); document.getElementById('modal-container').classList.remove('out'); document.getElementById('modal-container').classList.add('one'); body.classList.add("modal-active"); }); let modcon = document.getElementById('modal-container'); modcon.addEventListener('click', () => { document.getElementById('modal-container').classList.add('out'); body.classList.remove("modal-active"); });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda