javascript - HTML5 视频在完全可见时运行

标签 javascript html html5-video

这两个DIV将是页面内容

当视频出现时自动执行

var boom = function(e) {
  e.target.play();
};

var _video = document.querySelector('video');
_video.addEventListener('???', boom, false);
div {
  background: silver;
  width: 100%;
  height: 100vh;
}
video {
  margin: 15px;
  width: 500px;
}
<div></div>
<video>
  <source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
  Your browser does not support HTML5 video.
</video>
<div></div>

使用EventListener,改变代码中的'???'

  • 活跃

  • 焦点(不适用)

不工作

最佳答案

您可以向窗口“滚动”事件添加事件监听器。在那里,您可以通过将 _video 元素传递给 isScrolledIntoView 函数来检查它是否“在 View 中”。如果是,则 play() _video,否则暂停()。 Example here.

JS

var _video = document.querySelector('video');

function isScrolledIntoView( element ) {
    var elementTop    = element.getBoundingClientRect().top,
        elementBottom = element.getBoundingClientRect().bottom;

    return elementTop >= 0 && elementBottom <= window.innerHeight;
}

window.addEventListener("scroll", function(){
  if (isScrolledIntoView(_video)) {
    _video.play();
  }
  else {
    _video.pause()
  }
})

HTML

<div></div>
<video>
  <source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
  Your browser does not support HTML5 video.
</video>
<div></div>

关于javascript - HTML5 视频在完全可见时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32554260/

相关文章:

javascript - Safari Web Inspector 不调试 iOS 7 模拟器中的 JavaScript

javascript - 字典数组的最小值和最大值 (JSON)

javascript - Action 相关的 Javascript/Jquery - 如何仅在另一个脚本完成后激活命令?

javascript - 制作响应式导航栏,内容在左中右

javascript - 如何使用 javascript 将视频上传到 youtube?

javascript - 如何在我的代码所在的 js 文件之外查找具有 getElementById 的元素?

javascript - 在弹出图像上显示文本

javascript - 超链接并显示选项卡

html5-video - 如何向 Chromium 添加 HTML5 支持?

javascript - 处理亚像素渲染时,如何让图片或视频填满整个容器?