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

161
Visualizações
Poner el video en pausa cuando es invisible

Mi pregunta se basa en esta:

¿Escuchador de eventos para cuando el elemento se vuelve visible?

Quiero que un elemento de video comience a reproducirse automáticamente cuando se vuelva visible y se detenga cuando se vuelva invisible. El elemento es una diapositiva en un componente de carrusel (a saber, owl-carousel , aunque creo que no importa). Así que hice lo siguiente:

  • Marcó el elemento de video con la clase autovideo .
  • Incluyó el código de la función respondToVisibility de la respuesta .
  • Adjuntó un controlador de eventos stub.

Así que ahora el código se ve así:

 function respondToVisibility(element, callback) { var options = { root: document.documentElement, }; var observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { callback(entry.intersectionRatio > 0); }); }, options); observer.observe(element); } // Autoplay video when visible. $('.autovideo').each(function () { respondToVisibility(this, function (isVisible) { alert('isVisible: ' + isVisible); }); });

Funciona según lo previsto, cuando hago clic en los botones del carrusel Siguiente / Anterior ( display:none estilo se agrega / elimina debajo del capó). Pero cuando me desplazo por la página hacia abajo y el elemento de video está fuera de la pantalla, el evento no se dispara.

Supuse que Intersection Observer API significa intersección de un elemento con la parte visible de la ventana del navegador ( ventana gráfica ). ¿Debo usar un observador adicional para desplazar el video fuera de la ventana o cambiar el actual?

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

0

Según la documentación ( https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#intersection_observer_concepts_and_usage ):

Para observar la intersección relativa a la ventana gráfica del dispositivo, especifique null para la opción root .

Mientras lo hacía, ahora también se llama a la devolución de llamada cuando me desplazo hacia abajo en la página.

Además, supongo que la entry.intersectionRatio > 0 no es muy buena en mi caso, el video debería ser visible en más del 50%.

 var options = { root: null, threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1], };
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