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

451
Vistas
¿Cómo evitar cualquier desplazamiento fuera del iFrame? (Esbelto)

Tengo un iframe en una página web:

 <iframe id="wordBookiFrame" src="/wordBook" style="position:absolute; width:100%; height:100%;"></iframe>

Al ver la página web en una pantalla pequeña (es decir, un teléfono inteligente), tanto el iframe como la página principal se pueden desplazar, lo cual es de esperar, como se ve aquí.

Sin embargo, al desplazarse hasta el final del iframe, si continúa desplazándose, el desplazamiento de la página principal (el 'cuerpo') toma el control y el usuario también se desplazará hasta la parte inferior del cuerpo. Supongo que este es el comportamiento estándar del navegador.

Sin embargo, la consecuencia de este comportamiento es que cuando un usuario intenta desplazarse hacia arriba en el iframe, se atasca, ya que el desplazamiento del cuerpo tiene prioridad sobre el iframe. En pocas palabras, el cuerpo parece "tomar el control" y tener prioridad sobre el propio iFrame y da como resultado un comportamiento de desplazamiento fijo del iFrame. Por lo tanto, necesito deshabilitar de alguna manera el desplazamiento del cuerpo en Svelte cuando el iframe está visible. Sin embargo, no hay una manera fácil de hacer esto en Svelte, ya que la etiqueta BODY se encuentra en un archivo separado.

La solución que he intentado es la siguiente (colocada dentro de una función settimeout):

 if(document.getElementById("wordBookiFrame").style.display == "block") //as the iframe only displays in certain circumstances { window.addEventListener('scroll',(event) => { window.scrollTo(0,0) return; }); }

El pensamiento detrás de este código es que al obligar a la página principal a desplazarse en la posición 0,0, puede evitar este problema. Desafortunadamente, el código es temperamental.

¡Espero encontrar algunas soluciones fáciles a este molesto problema!

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

0

Para detener el desplazamiento exterior

Agregue este css:

 .stop-scrolling { height: 100%; overflow: hidden; }

Y luego agregue y elimine la clase stop-scrolling con JavaScript. Editar: agregarlo a la etiqueta del cuerpo.

Incluso si Svelte no le permite acceder a la etiqueta del cuerpo, agregar una etiqueta de secuencia de comandos es del lado del cliente y siempre funcionará

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