【发布时间】:2014-06-16 17:53:03
【问题描述】:
我在我的网站上使用 html5 视频。我希望它仅在可见时播放,否则暂停。
我也在使用 javascript 来设置播放/暂停按钮。
我能够轻松地在一个网站上使用这两种功能,并且视频是该网站上的第一个元素。不过这次是第二个div
我觉得存在冲突,因为目标是相同的元素或出现了我似乎无法理解的错误
在这种情况下,当我打开网站时视频会自动播放,当我滚动到实际视频时,它会停止(暂停)!谁能看到我做错了什么?
<script>
var videos = document.getElementsByTagName("video"), fraction = 0.8;
function checkScroll() {
for(var i = 0; i < videos.length; i++) {
var video = videos[i];
var x = video.offsetLeft, y = video.offsetTop, w = video.offsetWidth, h = video.offsetHeight, r = x + w, //right
b = y + h, //bottom
visibleX, visibleY, visible;
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));
visible = visibleX * visibleY / (w * h);
if (visible > fraction) {
video.play();
} else {
video.pause();
}
}
}
window.addEventListener('scroll', checkScroll, false);
window.addEventListener('resize', checkScroll, false);
</script>
我附上了一个小提琴 http://jsfiddle.net/5wZLL/12/
我在这个网站上使用过的其他插件: 恒星.Js 弹性滑块 平滑滚动
【问题讨论】:
-
我也尝试了这里给出的解决方案,stackoverflow.com/questions/15395920/… 或多或少相同。同样的事情也会发生。与 Stellar 或视频的位置有关。请帮助我对如何解决这个问题感到非常沮丧
标签: javascript jquery html video html5-video