HTML5 和 Javascript 仅在可见时播放视频 [英] HTML5 and Javascript to play videos only when visible
问题描述
我有兴趣设置一个包含多个视频剪辑的 HTML 页面,以便每个视频剪辑仅在可见时播放,然后在看不见时暂停.
我找到了这个很好的例子,说明如何用一个剪辑实现这一点,但我无法修改代码以处理多个剪辑.也许我需要将此代码转换为易于重用的函数?
这是我到目前为止所拥有的(上面链接的 JS Bin 修改为 2 个剪辑而不是一个).
此代码似乎仅适用于两个剪辑中的一个.
<!-- 使用 jsbin.com 创建的源代码可以通过 http://jsbin.com/ocupor/1/edit 进行编辑--><头><元字符集=utf-8/><title>JS Bin</title><风格>#对 {位置:绝对;顶部:2000px;}#video1 {位置:绝对;左:2000px;顶部:2000px;}#video2 {位置:绝对;左:2000px;顶部:3000px;}</风格><style id="jsbin-css"></风格>头部>#<body style="width: 4000px; height: 4000px;"><div id="信息"></div><div id="向下">请向下滚动...
<div id="右">请向右滚动...
<video id="video1"><source src="http://video-js.zencoder.com/oceans-clip.mp4"/></视频><脚本>var video = document.getElementById('video1'), 分数 = 0.8;函数 checkScroll() {var x = video.offsetLeft, y = video.offsetTop, w = video.offsetWidth, h = video.offsetHeight, r = x + w,//rightb = y + h,//底部可见X,可见Y,可见;visibleX = Math.max(0, Math.min(w, window.pageXOffset + window.innerWidth - x, r - window.pageXOffset));visibleY = Math.max(0, Math.min(h, window.pageYOffset + window.innerHeight - y, b - window.pageYOffset));可见 = 可见 X * 可见 Y/(w * h);如果(可见>分数){视频播放();} 别的 {视频.暂停();}}检查滚动();window.addEventListener('scroll', checkScroll, false);window.addEventListener('resize', checkScroll, false);<video id="video2"><source src="http://video-js.zencoder.com/oceans-clip.mp4"/></视频><脚本>var video = document.getElementById('video2'), 分数 = 0.8;函数 checkScroll() {var x = video.offsetLeft, y = video.offsetTop, w = video.offsetWidth, h = video.offsetHeight, r = x + w,//rightb = y + h,//底部可见X,可见Y,可见;visibleX = Math.max(0, Math.min(w, window.pageXOffset + window.innerWidth - x, r - window.pageXOffset));visibleY = Math.max(0, Math.min(h, window.pageYOffset + window.innerHeight - y, b - window.pageYOffset));可见 = 可见 X * 可见 Y/(w * h);如果(可见>分数){视频播放();} 别的 {视频.暂停();}} checkScroll();window.addEventListener('scroll', checkScroll, false);window.addEventListener('resize', checkScroll, false);