Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

154
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda