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

226
Vistas
Javascript: carga diferida para iFrame (iFrame se vuelve a cargar cada vez que me desplazo hacia arriba o hacia abajo)

Tengo problemas con mi código Lazy Load:

HTML

 <div class="mapFrame mobileHide" > <iframe class="lazy" data-src="{eval var=$config.gisMapUrl}" id="mapIFrame" ></iframe> </div> ... <div class="mapFrame mobileHide" > <iframe class="lazy" data-src=="{eval var=$config.polUrl}" ></iframe> </div>

JavaScript

 document.addEventListener("DOMContentLoaded", function() { var lazyloadiFrame = document.querySelectorAll("iframe.lazy"); var lazyloadThrottleTimeout; function lazyload () { if(lazyloadThrottleTimeout) { clearTimeout(lazyloadThrottleTimeout); } lazyloadThrottleTimeout = setTimeout(function() { var scrollTop = window.pageYOffset; lazyloadiFrame.forEach(function(iframe) { if(iframe.offsetTop < (window.innerHeight + scrollTop)) { iframe.src = iframe.dataset.src; iframe.classList.remove('lazy'); } } ); }, 20); } document.addEventListener("scroll", lazyload); });

Funciona de maravilla cuando se carga la página; y los iframes no se cargan en absoluto hasta que me desplazo a ellos. El problema es... Una vez que me desplazo a los iFrames y los muestro. Utilizo la barra de desplazamiento para moverme hacia arriba o hacia abajo, el contenido de los iFrames sigue recargándose una y otra vez... Cada vez que muevo la barra de desplazamiento, se vuelve a cargar. Necesito parar una vez cargado y solo mostrar. Básicamente, una vez que la barra de desplazamiento toca un iframe, iframe carga el contenido, lo muestra y puedo seguir desplazándome sin que vuelva a cargar el contenido.

La recarga lleva demasiado tiempo, y también hay un foco dentro del contenido de los iframes, lo que hace que vaya a ese iframe en particular cada vez que presione la barra de desplazamiento y lo vuelva a cargar. Solo necesito tener el iframe para mostrar el contenido una vez que se carga, y puedo continuar desplazándome hacia arriba o hacia abajo sin recargarlo.

Intenté eliminar class="lazy", y elimina la clase, pero el contenido aún se vuelve a cargar cada vez que presiono la barra de desplazamiento. Intenté eliminar scrollTop, pero eso solo parece eliminar el contenido dentro de un iframe.

Estoy un poco oxidado con la codificación de javascript y se agradece la ayuda de cualquier persona, especialmente en la codificación de qué hacer a continuación. ¡Por favor ayuda!

about 4 years ago · Juan Pablo Isaza
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