html5 video全屏播放/自动播放的实现示例


Posted in HTML / CSS onAugust 06, 2020

近期开始开发公司新版官网, 首页顶部(header)是一个全屏播放的小视频, 现简单总结如下:

页面代码

<header class="header" style="width:100%;position: relative;">
    <?php if(!Helper::isMobile()) { ?>
    <video id="homeVideo" class="home-video" autoplay loop muted poster="res/video/cover.jpg">
        <source src="res/video/home_video.mp4" type="video/mp4">
    </video>
    <?php } ?>
</header>

其中php简单判断了一下是否是移动设备, 移动设备不展示视频(如果移动端展示的话, 需要解决iOS上无法自动播放的问题):

ps: 如果H5页面主要在微信浏览器中访问,可以解决iOS上视频自动播放的问题:解决iOS h5 audio自动播放(亲测有效)

class Helper {
    public static function isMobile() {
        if (preg_match("/(iPhone|iPod|Android|ios|iPad)/i", $_SERVER['HTTP_USER_AGENT'])) {
            return true;
        } else {
            return false;
        }
    }
}

video标签样式

为了让视频占满整个屏幕, 关键在于video标签样式的设置:

.home-video {
    z-index: 100;
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    object-fit: fill;/*这里是关键*/
    width: auto;
    height: auto;
    -ms-transform: translateX(-50%) translateY(-50%);
    -webkit-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
    background: url(../video/cover.jpg) no-repeat;
    background-size: cover;
}

视频跟随浏览器窗口大小的改变:

$('.home-video').height(window.innerHeight);
$('.header').height(window.innerHeight);
$(window).resize(function() {
    $('.home-video').attr('height', window.innerHeight);
    $('.home-video').attr('width', window.innerWidth);
    $('.header').height(window.innerHeight);
});

页面加载完成再次触发播放,防止autoplay未生效

document.getElementById('homeVideo').play();

到此这篇关于html5 video全屏播放/自动播放的实现示例的文章就介绍到这了,更多相关html5 video全屏播放/自动播放内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3教程(8):CSS3透明度指南
Apr 02 HTML / CSS
一款纯css3实现的tab选项卡的实列教程
Dec 11 HTML / CSS
基于Jquery和Css3代码制作可以缩放的搜索框
Nov 19 HTML / CSS
CSS3近阶段篇之酷炫的3D旋转透视
Apr 28 HTML / CSS
浅谈cookie和localStorage那些事
Aug 27 HTML / CSS
谷歌浏览器小字体处理方案即12px以下字体
Dec 17 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
Jun 16 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
May 06 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
Jan 03 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
Sep 17 HTML / CSS
浅谈由position属性引申的css进阶讨论
May 25 HTML / CSS
css3带你实现3D转换效果
Feb 24 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
Aug 05 #HTML / CSS
Html5饼图绘制实现统计图的方法
Aug 05 #HTML / CSS
Canvas 帧动画吃苹果小游戏
Aug 05 #HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
Jul 28 #HTML / CSS
canvas实现图片镜像翻转的2种方式
Jul 22 #HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
Jul 20 #HTML / CSS
HTML5跳转小程序wx-open-launch-weapp的示例代码
Jul 16 #HTML / CSS
You might like
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
php短址转换实现方法
2015/02/25 PHP
php中的登陆login实例代码
2016/06/20 PHP
asp 取文本框名称代码
2008/12/02 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
javascript中错误使用var造成undefined
2016/03/31 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python set集合类型操作总结
2014/11/07 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
介绍一下linux文件系统分配策略
2013/02/25 面试题
采购主管的岗位职责
2013/12/17 职场文书
好邻里事迹材料
2014/01/16 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
师德师风自查总结
2014/10/14 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
Go获取两个时区的时间差
2022/04/20 Golang
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers