Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
Ocultar la superposición de div en la carga de la página o la navegación hacia atrás no funciona en Chrome

Tengo una superposición div que muestra un gif de carga. Cuando se carga la página, se supone que la superposición de div desaparece.

 <div id="posts"> <div id="loading" style="display: none;"> <img id="loading-image" src="/loading.gif" alt="Loading..."> </div> <div> ... </div> </div>

Para ocultar la superposición div, estaba usando:

 $(window).on('load', function () { // hide loading div $('#loading').hide(); })

En Chrome , si navego a algún enlace, luego navego "atrás", la superposición div de carga no se oculta. Solo se oculta cuando recargo la página.

Si agrego unload o beforeunload a la lista de eventos de jQuery, obtengo el comportamiento que deseo, pero la unload está obsoleta y beforeunload probablemente cause problemas de caché y problemas de rendimiento.

Según tengo entendido, un evento de load no se activa cuando un usuario presiona "atrás".

Pero quiero que la superposición div desaparezca cuando se carga la página O cuando el usuario vuelve a la página.

¿Cómo puedo lograr esto sin sufrir un impacto en el rendimiento?

DomContentLoaded con js regular.

 window.addEventListener('DOMContentLoaded', function() { let loading = document.querySelector('#loading'); loading.style.display = 'none'; console.log('Loaded'); })

Se imprime "Cargado" en la consola, pero la superposición tiene una etiqueta de estilo vacía, así:

 <div id="loading" style>...</div>

window.addEventListener('pageshow', function() {...} parece funcionar, pero no estoy seguro de si causará un impacto en el rendimiento o si es la mejor solución. Nunca lo usé antes.

¿Es esto una cosa de Chrome? ¿Hay alguna configuración de Chrome que deba mirar? Pruebo en MS Edge y Firefox y $('#loading').hide(); funciona bien en carga y navegación hacia atrás.

Versión de Chrome : versión 101.0.4951.67 (compilación oficial) (64 bits)

¡Incluso esto se registra en la consola pero no oculta el div en Chrome!

 $(document).ready(function () { $('#loading').hide(); console.log('Should be hidden?') })

Editar

De forma predeterminada, CSS muestra esta superposición con display: block; . Cuando se carga la página, configuro esta propiedad CSS en none para ocultarla.

 #loading { width: 100%; height: 100%; top: 0; left: 0; position: absolute; display: block; opacity: 0.7; background-color: #fff; z-index: 99; text-align: center; } #loading-image { position: fixed; top: 50%; left: 50%; z-index: 100; transform: translate(-50%, -50%); }
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda