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

323
Vistas
JS: ¿Cómo recibir una notificación después de insertBefore ()?

¿Hay alguna forma de recibir una notificación, después de insertar un elemento en el DOM con insertBefore() , cuando este elemento se vuelve realmente visible/disponible para el usuario? ¿Especialmente para comenzar a aplicar transformaciones CSS en él?

problema completo

Perdóneme si esta pregunta es recurrente, no encontré una respuesta adecuada hasta ahora. Estoy tratando de implementar un sistema de diálogo emergente personalizado en un sitio web propio, similar a SweetAlert o algunos otros productos.

Me gustaría aplicar algunos efectos especiales cuando aparezca esta ventana emergente, como un oscurecimiento progresivo del fondo, así como un movimiento vertical lento en el cuadro mismo.

Para lograr todo esto, genero un gran elemento div fijo que cubre toda la pantalla (el fondo) y contiene el cuadro emergente. Cuando lo necesito, primero inserto este elemento como el primer elemento secundario de body , etiquetándolo con una clase invisible especial. Una vez insertada, elimino esta clase invisible del elemento y dejo que las reglas CSS hagan la magia.

El problema es que incluso si se elimina la clase después de haber insertado este elemento, este se representará solo cuando la función de Javascript se vaya, por lo tanto, directamente en su estado final.

Al hacer esto en una página inicial completa, el evento de load ayuda. Ahora me gustaría hacer lo mismo en una página existente.

Como siempre, estoy interesado en ambas soluciones a este problema (potencialmente XY): si hay una mejor manera de hacerlo, estaré feliz de descubrirla, pero de todos modos estoy interesado en resolver esta situación en particular.

Gracias de antemano a todos.

EDITAR: actualmente realizando pruebas en Firefox 82.0.2

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

0

Gracias a los comentarios anteriores, aquí hay una solución válida para ambos problemas expuestos:

  • " Mutation Observer ", así como los antiguos " Mutation Events " (ahora en desuso) son la mejor manera de recibir una notificación cuando se inserta algo. Sin embargo, no ayudará con los problemas de animaciones, porque todavía no está garantizado que se renderice en este momento;
  • En lugar de aplicar una clase y luego otra para realizar una transición, es mejor definir una animación regular usando @keyframes que se reproduce solo una vez. Se garantiza que se reproducirá cuando aparezca el objeto, por definición.

Muchas gracias a "Pomax", F4st3r y epascarello por su ayuda.

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