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 transform 属性来变换背景图的方法
May 07 HTML / CSS
CSS3使用border-radius属性制作圆角
Dec 22 HTML / CSS
基于css3 animate制作绚丽的动画效果
Nov 24 HTML / CSS
浅谈CSS3鼠标移入图片动态提示效果(transform)
Nov 06 HTML / CSS
详解利用css3的var()实现运行时改变scss的变量值
Mar 02 HTML / CSS
详解Canvas事件绑定
Jun 27 HTML / CSS
html5 Canvas绘制线条 closePath()实例代码
May 10 HTML / CSS
HTML5安全介绍之内容安全策略(CSP)简介
Jul 10 HTML / CSS
HTML5之SVG 2D入门7—SVG元素的重用与引用
Jan 30 HTML / CSS
HTML页面中添加Canvas标签示例
Jan 01 HTML / CSS
HTML中的表单Form实现居中效果
May 25 HTML / CSS
纯CSS3实现div按照顺序出入效果
Jul 15 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
一个程序下载的管理程序(二)
2006/10/09 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
Python 实现简单的电话本功能
2015/08/09 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
表决心的诗句大全
2014/03/11 职场文书
学习十八大的心得体会
2014/09/12 职场文书
婚育证明格式
2015/06/17 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS