使用视频作为网页背景是件很酷的事情,但也是件困难的事情。CSS里的background-image属性只能使用图片、SVG、颜色或渐变色。但从技术讲,我们是可以伪造出一种效果,让视频以背景的角色出现在其它HTML元素后面。这其中的难点是视频要填充整个浏览器页面,而且要响应浏览器窗口大小的变化。

视频作为网页背景的限制因素

在动手编码实现前,视频作为网页背景的有些问题我们要先考虑清楚:

并不是因为技术上可行你就可以任意使用:作为背景的视频内容必须能增强页面内容的感染力,而不是因为漂亮或技术上很酷就使用它。

作为背景的视频应该设置为自动播放,而默认状态下应该是关闭声音;事实上,视频里面最好不含声音。(你可以在页面上放置一个控制声音的按钮。)

背景视频应该有个替代图片,当浏览器不支持这种HTML5技术、视频格式时用图片替代。在等待背景视频加载的过程中也应该使用背景图片占位。而对于一些手机移动设备不支持视频自动播放,也应该使用图片替代。

视频长度很重要:太短了会明显感到重复播放(背景视频通常情况是重复播放的),太长就变成了情节叙事,如果这样,这段视频应该单独放到页面上播放。我建议视频的长度应该是12-30秒之间。

带宽是个大问题。视频的体积应很小,尽量的压缩。同时,它需要在不同尺寸设备上自动的适应屏幕大小。如果有可能,应该使用JavaScript控制对不同的屏幕大小加载不同分辨率的背景视频。背景视频最好小于5M,如果你小于500K,那是更好。

对上面说的这些情况心里要有数,下面我们来看看技术实现上的细节。

CSS代码

使用HTML5里播放视频的代码方法视频:

注意:这里摆放视频格式的顺序很重要,因为有些版本的谷歌浏览器里,如果.webm格式的视频放在了其他视频后面,视频将无法播放。

我们使用视频的第一帧图像作为视频的封面图片,这样,当背景视频一旦加载完成,我们可以看到很流畅的从图片过度到背景视频播放。

让视频扩展到全屏的方法:

video#bgvid {

position: fixed;

top: 50%;

left: 50%;

min-width: 100%;

min-height: 100%;

width: auto;

height: auto;

z-index: -100;

-ms-transform: translateX(-50%) translateY(-50%);

-moz-transform: translateX(-50%) translateY(-50%);

-webkit-transform: translateX(-50%) translateY(-50%);

transform: translateX(-50%) translateY(-50%);

background: url(polina.jpg) no-repeat;

background-size: cover;

}

一些老式的浏览器无法播放这种格式的视频,但它们仍然识别标记(除了IE8/6)。对于这些浏览器,我们使用了background-image来弥补它们的不支持,使用的图片就是视频的封面图片。

你可能会发现,在手机设备上,标记是无法扩展到全屏的,因为这些设备的屏幕长宽比限制了视频的扩展。我在以后的文章里了会继续探讨这个问题。

视频背景技术在 IE 8 上的问题

IE8不仅不能识别标记,它对所有的HTML5标记都不能识别,这是一个问题,对于IE8,我们至少要让替代的背景图片能显示出来。为了达到这个目的,我们需要两件事情:一行JavaScript代码,一个CSS条件判断注释语句。

在你的CSS代码里做如下的声明,让IE知道是一个block元素:

video { display: block; }

有了这句代码,IE8至少能识别标记,可以正确的显示背景图片。

使用JavaScript实现视频背景

尽管使用HTML5/CSS3实现视频背景要比使用JavaScript好一些,但不妨说一下,有一些jQuery插件和JavaScript工具包也能达到视频背景的效果。下面是几个演示:

结论

如果一个网站上使用了视频背景,那会变得相当的酷,但是,“能力越大,责任越大”,请审慎明智的使用。

html背景视频如何自动播放,使用视频作为网页背景的技术探讨相关推荐

  1. iOS 调用h5页面 视频不自动播放的问题

    为什么80%的码农都做不了架构师?>>>    h5页面在google浏览器,qq浏览器等打开视频都自动播放.但是在Safari里面死活不行,mac上,iphone都不行. 原因是苹 ...

  2. 在Chrome78浏览器上如何实现自动播放音视频

    在Chrome78浏览器上如何实现自动播放音视频 问题:video与audio标签里设置了autoplay="autoplay",在Chrome78浏览器上无法实现自动播放. 1. ...

  3. vue 使用video加载视频进行展示,视频循环自动播放

    vue 使用video加载视频进行展示,视频循环自动播放loop autoplay <span v-else-if="item.prop === 'alarmVedio'"& ...

  4. html自动播放avi视频,使用HTML5 video标签的一系列问题

    H5标签的video,我想写过前端代码的人,都不会陌生吧.但video标签还是有一些问题. 一.PC端的兼容问题: H5的标签不兼容ie8包括ie8以下的浏览器:解决办法:使用js的库video.js ...

  5. 解决google浏览器无法自动播放音视频问题

    浏览器报错:Unmuting failed and the element was paused instead because the user didn't interact with the d ...

  6. 实现类似微博视频滚动自动播放与暂停

    最近需要实现一个类似于微博内容中视频自动播放与暂停的功能.拿到这个功能后,需要把技术点细化.首先分析微博实现视频自动播放暂停的流程,拿到了我的华为荣耀7打开微博玩了半个小时..发现当手机处于连接WiF ...

  7. jQuery实现点击图片弹出视频并自动播放

    有时候我们需要放一张视频的封面,当我们点击封面的时候就播放弹出视频并自动播放,而且我们还可以把视频的封面做成视频加载前的封面,代码较少 <!DOCTYPE html> <html l ...

  8. HTML5播放视频autoplay不起作用-HTML5视频不自动播放

    初学HTML5视频播放的同学,可能大多数都会遇到这样一个问题:按照教程写的代码,添加了autoplay属性,为什么视频还是无法自动播放? <!DOCTYPE html> <html& ...

  9. php ppt自动播放,ppt如何循环播放,ppt如何添加视频设置自动播放(ppt转换成视频)...

    演示文稿制作软件Microsoft Office PowerPoint,主要用于演示文稿的创建,即幻灯片的制作.可有效帮助演讲.教学,产品演示等,使用范围广泛.大家应该都比较熟悉吧.学习使用PPT,使 ...

最新文章

  1. libc.so.6 is needed by mysql_libc.so.6(GLIBC_2.14)(64bit) is needed by…问题的解决办法
  2. 工作中一些代码优化的地方
  3. stp:spanning tree protocol 生成树基本原理
  4. CNVD-C-2019-48814 漏洞
  5. Angular里的RouterOutlet指令学习笔记
  6. [设计模式]简单工厂和工厂方法模式适用场景
  7. vs2019中如何创建qt项目_在VS2015中创建Qt项目【VS+Qt项目开发系列】(二)
  8. string和char数组
  9. iview table数据直接导出_使用iview的exportcsv怎样导出嵌套数据
  10. charles抓手机app的包的操作步骤
  11. TTL、CMOS和RS232电平的区别和联系
  12. python全套视频免费教程_《python免费视频教程33》 请问谁有靠谱的Python全套视频教程,求推荐分享...
  13. Uubuntu20.04配置openpose
  14. 图书管理系统—可行性分析报告
  15. 计算机无法进入桌面怎么备份,系统崩溃无法启动如何从pe进入系统备份C盘和桌面重要文件...
  16. Palm phone PVG-100/E 手机TWRP recovery 教程
  17. 后端java通过Base64加密再前端js进行解密
  18. 全志Tina Linux 系统裁剪 boot0裁剪 uboot裁剪 内核裁剪 文件系统裁剪 C库裁剪 文件系统压缩
  19. 背景建模或前景检测(Background Generation And Foreground Detection) 二
  20. 第一章:渗透测试的本质信息收集

热门文章

  1. [激光原理与应用-19]:《激光原理与技术》-5- 激光器的增益、损耗、自激振荡条件
  2. 【Unity3D】AR游戏制作 - Sikuto's Farm
  3. 电脑QQ正常上网但浏览器无法上网解决办法
  4. 三行代码可视化神经网络特征图
  5. 华为运营商级路由器配置示例 | 配置VPLS Multi-homing示例
  6. RPG游戏Demo学习笔记一
  7. 浅谈区块链技术应用场景
  8. iOS手势-UIGestureRecognizer
  9. 采集淘宝网的10个经典方法
  10. 2017年下半年中学综合素质问答题