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

217
Views
¿Cómo detener nuestro documento para que se desplace, una vez que una sección particular de nuestro documento entra en nuestro puerto de vista en React.js?

Lo que estoy tratando de lograr:

Tengo tres secciones en mi página web, la primera página, la segunda página y la tercera página (esos son nombres de sección, las tres tienen 100vh y 100vw, por lo que cubren toda nuestra pantalla) y quiero que una vez que la segunda página aparezca en la ventana gráfica para que el documento ya no debería ser desplazable (es decir, una vez que nuestra segunda página aparece en la ventana gráfica, ya no podemos desplazarnos a la tercera página, debería dejar de desplazarse)

lo que probé en codepen. https://codepen.io/Adarsh04/pen/yLvppBK

rootElement

 <div id="root"></div>

CSS

 body{ -ms-overflow-style: none; scrollbar-width: none; } *::-webkit-scrollbar { /* width: 4px; cursor: pointer; */ display: none; } .firstPage,.secondPage,.thirdPage{ border:1px solid red; width:95vw; margin:atuo; height:95vh; display:flex; align-items:center; justify-content:center; font-size:64px; } .firstPage{ background-color:red; } .secondPage{ background-color:blue; } .thirdPage{ background-color:yellow; }

Aplicación.js

 const App = () => { React.useEffect(()=>{ const handleEvent = () => { const bounding = document .getElementById("secondPage") .getBoundingClientRect(); if ( bounding.top >= 0 && bounding.left >= 0 && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) ) { console.log("Element is in the viewport!"); document.body.style.overflow = "hidden"; } else { console.log("Element is NOT in the viewport!"); } }; window.addEventListener("scroll", handleEvent, { passive: true }); return () => { window.removeEventListener("scroll", handleEvent), { passive: true }; }; },[]) return( <div className="box"> <div className="firstPage">First.</div> <div id="secondPage" className="secondPage">Second.</div> <div className="thirdPage">Third</div> </div> ); } ReactDOM.render(<App />, document.getElementById("root"))

aquí el problema es solo que cuando me desplazo rápidamente, la segunda página no se detiene, pero si me desplazo lentamente, funciona y quiero que funcione independientemente de qué tan rápido o lento me desplace

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