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

146
Views
Aplicación de estilo a secciones basadas en IntersectionObserver

Mi pregunta aquí es de dos partes. Pero todo relativo a entender más sobre cómo funciona el observador de intersección.

Obtengo todas mis 'secciones', recorro y aplico el observador a cada una. Mi objetivo es que si la sección se cruza, quiero aplicar un estilo, y para las que no se cruzan, no quiero que se aplique el estilo. en la carga de la página, todas mis secciones tienen el borde y no se alternan como esperaría. Además, en mi console.log (entrada), la entrada parece registrarse antes de que realmente se cruce con la sección.

Ejemplo: me estoy desplazando hacia arriba y todavía estoy claramente en el borde de la "sección 3", pero ya apareció el registro de la "sección 2".

Un poco de ayuda con una comprensión general y algunas posibles soluciones sería increíble.

 let allSections = document.querySelectorAll('section')
 const options = { root: null, threshold: 0, rootMargin: '0px' } const observer = new IntersectionObserver(function (entries, observer) { entries.forEach(entry => { if (entry.isIntersecting) { console.log('ENTRY', entry.target) entry.target.style.border = '1px solid red' } else { entry.target.style.border = '1px solid transparent' } }) }, options) allSections.forEach(section => { observer.observe(section) })
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Es debido a su objeto de options , el threshold debe ser mayor que 0 si desea ver que sucede su animación.

threshold: 1 significa que entry.isIntersecting es verdadero cuando el 100 % del elemento está en la ventana gráfica.

threshold: 0.3 significa que entry.isIntersecting es verdadero cuando el 30 % del elemento está en la ventana gráfica, etc.

 const options = { root: null, threshold: 1, rootMargin: '0px' }

Si quieres saber más al respecto, puedes leer la documentación de MDN aquí .

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!