你能停止一个HTML5视频暂停/停止滚动
Can you stop a HTML5 video pausing/stopping on scroll?
我的页面顶部有一个HTML5视频横幅。添加了autoplay
和loop
属性。当我开始向下滚动页面时,视频停止了,当我向上滚动时,视频永远不会重新开始。我希望无论用户是否滚动,视频都能继续播放。
在W3C规范中似乎没有列出任何建议解决方案的属性,那么是否有其他方法可以禁用此功能?
HTML和CSS非常简单,所以我想知道我是否需要一些JS来帮助:
HTML:<video preload="none" autoplay loop>
<source src="/media/test.mp4" type="video/mp4">
</video>
CSS: video {
width: 100%;
height: auto;
}
你可以使用isInViewport jQuery插件如下:
$('video').each(function(){
if ($(this).is(":in-viewport")) {
$(this)[0].play();
} else {
$(this)[0].pause();
}
})
它对我来说很好,,如果你想改变你的视口,然后改变
fraction = 0.5;
在我的代码
var videos = document.getElementsByTagName("video"),
fraction = 0.5;
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);
div {padding-top:300px; width:320px;}
video {
padding-bottom:300px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<video id="video1" preload="auto" loop="loop">
<source src="http://www.w3schools.com/html/movie.mp4" type="video/mp4">>
bgvideo
</video>
</div>
这可以通过使用属性data-keepplaying
来禁用。
<video preload="none" autoplay loop>
<source src="/media/test.mp4" type="video/mp4">
</video>
使用fullpage.js
<video autoplay muted loop data-keepplaying>
<source src="myvide.mp4" type="video/mp4">
</video>
作品相关文章:
- 如何检查用户在html5视频播放器中观看了完整的视频
- html5视频中的Youtube类型注释
- 强制浏览器更新缓存的HTML5视频对象
- 可以使用带有json回调的html5视频标签
- 使用HTML5播放器时使用Javascript更改Youtube视频
- html5视频播放器和视频js之间的关系
- 隐藏HTML5视频控件
- 用链接替换嵌入的HTML5视频
- 我可以设置HTML5文件上传的视频长度限制吗
- HTML5视频链接在Chrome中不起作用
- 用angular js在屏幕上点击播放和暂停html5视频
- 使用Javascript播放HTML5视频
- 自定义HTML5视频控件-退出按钮不会启动全屏切换功能
- 视频HTML5的函数
- 录制视频HTML5
- 背景视频HTML5
- 在画布上绘制视频HTML5
- 在视频HTML5中获得帧变化
- 根据屏幕分辨率加载不同的视频(html5)质量
- 如何使保存按钮保存图像上的视频HTML5