【发布时间】:2017-11-26 20:01:42
【问题描述】:
我设计了一个带有全屏背景 html5 视频的页面,表单元素覆盖在页面正文中。 Chrome 和 Firefox 以及它们的移动设备都可以在后台正确播放视频。
但是,我尝试了另一个移动浏览器(小米网络浏览器),它将 webm 视频加载到所有内容之上,全屏...阻止页面上的所有其他内容并使其无法使用。基本上是最坏的情况。
我想非常清楚,浏览器支持视频标签,因此海报属性或在视频元素中嵌套图像无效。问题不在于视频没有加载,而是它加载在其他所有内容之上,这意味着似乎没有明确的方法来处理这种不兼容的显示问题。希望有一些解决方法可以允许从页面弹出视频元素的浏览器用户仍然使用该站点。
有什么方法可以在不太兼容的浏览器上强制将视频置于背景中,或者检测到页面元素不可见并终止视频或使用背景图像代替?
video#bgvid {
position: fixed;
top: 50%;
left: 50%;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
z-index: -1000;
background: url(images/particles.jpg) no-repeat;
background-size: cover;
}
<video poster="images/particles.jpg" id="bgvid" playsinline autoplay muted loop>
<source src="images/particles.webm" type="video/webm">
<source src="images/particles.mp4" type="video/mp4">
<img alt="particles" src="images/particles.jpg" width="640" height="360" title="No video playback capabilities" />
</video>
注意:浏览器与 videotag webm 兼容,视频播放。然而,它超越了其他一切。不幸的是,这意味着如果视频无法加载,则使用标准后备代码加载图像没有任何效果。
【问题讨论】:
-
“我设计了一个全屏背景 html5 视频的页面” - 请不要。
-
我同意这通常是一个坏主意/web2.0 呕吐物,但它非常适合这种设计。视频很微妙,页面很小。它不是内容页面,只是在整个网站正在构建时的临时保留页面,因此它需要在视觉上更有趣。
-
不幸的是,这是一个不同的问题。浏览器可以渲染视频,它只是在其他所有内容之上渲染它,忽略 z 索引。我可以确认,为不受支持的视频标签设置后备 jpg 并不能解决问题。
标签: javascript css html