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

241
Vistas
visibilidad oculta después de reproducir la animación

Estoy tratando de agregar efectos en modal.

quiero hacer asi:

  • Cuando se agrega modal--show class, la visibility se establece en visible y la opacity continúa creciendo de 0% a 100%.
  • Cuando se elimina la clase modal--show , la opacity continúa disminuyendo del 100 % al 0 % y, después de eso, la visibility se establece en hidden .

Mostrar animación modal funciona bien, pero ocultar animación modal no. Cuando se reproduce una animación oculta, la visibility se hidden inmediatamente cuando comienza la animación.

¿Cómo configurar la visibility: hidden después de la opacity: 0% con CSS o JS puro?

JSFiddle : https://jsfiddle.net/p1gtranh/1/

 document.querySelector('.open').addEventListener('click', () => { document.querySelector('.modal').classList.add('modal--show'); }); document.querySelector('.close').addEventListener('click', () => { document.querySelector('.modal').classList.remove('modal--show'); });
 .modal { display: flex; align-items: center; justify-content: center; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.3); visibility: hidden; opacity: 0%; } .modal--show { animation: show 0.5s both; visibility: visible; } @keyframes show { 0% { visibility: hidden; opacity: 0%; } 1% { visibility: visible; } 100% { opacity: 100%; } }
 <button class="open">open</button> <div class="modal"> <button class="close">close</button> </div>

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

0

Probablemente descartaría toda la animación y simplemente haría una transition simple en su lugar.

En este caso, transition se especifica de forma abreviada. Las propiedades asociadas son:

transition-timing-function: ease-in-out : cómo se debe reproducir la transición, este valor reproducirá una transición de atenuación gradual al abrir y cerrar el modal.

transition-property: all : qué propiedad está asociada con la transición. Dado que estamos transicionando las propiedades de opacity y visibility , usar all seleccionará ambas.

transition-duration: 0.5s - cuánto debe durar la transición.

Más sobre la transition -taquigrafía aquí

 document.querySelector('.open').addEventListener('click', () => { document.querySelector('.modal').classList.add('modal--show'); }); document.querySelector('.close').addEventListener('click', () => { document.querySelector('.modal').classList.remove('modal--show'); });
 .modal { display: flex; align-items: center; justify-content: center; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.3); visibility: hidden; opacity: 0%; transition: all 0.5s ease-in-out; } .modal--show { visibility: visible; opacity: 100%; }
 <button class="open">open</button> <div class="modal"> <button class="close">close</button> </div>

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