Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

165
Visualizações
Intersection Observer no está trabajando en elementos que tengan menos del 50 % de visibilidad en la ventana gráfica

He agregado un Intersection Observer para la carga diferida de imágenes. Pero por alguna razón, si un elemento div está presente en la ventana gráfica con menos del 50% de visibilidad, Intersection Observer no está cargando la imagen.

Quiero cargar la imagen incluso cuando está presente del 0% al 100% en la ventana gráfica. Aquí está mi instancia de IntersectionObserver:

 import {useEffect} from "react"; let listenerCallbacks = new WeakMap(); let observer; function handleIntersections(entries) { entries.forEach(entry => { if (listenerCallbacks.has(entry.target)) { let cb = listenerCallbacks.get(entry.target); if (entry.isIntersecting || entry.intersectionRatio > 0) { observer.unobserve(entry.target); listenerCallbacks.delete(entry.target); cb(); } } }); } function getIntersectionObserver() { if (observer === undefined) { observer = new IntersectionObserver(handleIntersections, { root: null, rootMargin: "0px", threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] }); } return observer; } export function useIntersection(elem, callback) { useEffect(() => { let target = elem.current; let observer = getIntersectionObserver(); listenerCallbacks.set(target, callback); observer.observe(target); return () => { listenerCallbacks.delete(target); observer.unobserve(target); }; }, []); }

resultado actual:

Fragmento de resultado ---

Lo que quiero:

lo que quiero ---

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Tener threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] ejecutaría la devolución de llamada cada vez que la visibilidad supera otro 10%, por lo que estaría extrayendo.

Dado que desea obtener tan pronto como sea visible un poco del div , establezca el threshold en 0, como threshold:0 , y cambie su declaración if dentro de handleIntersections a:

 if (entry.isIntersecting)

Por último, también está relacionado con qué tan rápido se desplaza y qué tan rápido responde su back-end, y qué tan grande es la imagen.

Referencia en mdn .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda