Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

450
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!