这可能听起来很奇怪,但在这种情况下我还可以显示后备图像吗?
由于移动设备(Android和iOS)中的视频元素会在点击时打开其原生视频播放器应用,因此我想展示视频的GIF版本(我将其作为后备图片放置)用于Android& iOS版。我知道如何通过Javascript检测浏览器是否可移动,我只需要一些关于最佳实践的建议。
我正在做什么
<video>
<source mp4>
<source ogg>
<source webm>
<img src="*.gif">
</video>
然后在js
if(site.isMobile()){
$('video').hide();
$('video img').show();
}
当然,由于img是在视频内部,因此无效。我想我可以克隆img并将其附加到视频元素之前然后隐藏视频元素,如下所示:
if(site.isMobile()){
$('video img').clone().prependTo('video'); // just some pseudocode
$('video').hide();
}
虽然这是一个好习惯吗?有没有更简单的解决方案?
答案 0 :(得分:44)
poster
可能是您正在寻找的内容:
海报:指示在用户播放或搜索之前要显示的海报框架的网址。如果未指定此属性,则在第一帧可用之前不会显示任何内容;然后第一帧显示为张贴框。 -Via https://developer.mozilla.org/en-US/docs/HTML/Element/video
<video width="316" height="161" poster="https://i.stack.imgur.com/BfXRi.png" controls>
<source src="https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" type="video/mp4" />
<source src="https://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv" type="video/ogg" />
Your browser does not support the video tag.
</video>
答案 1 :(得分:5)
试试这个 -
if(site.isMobile()){
$('video *').hide();
$('video img').show();
}
而不是创建图像的副本。