HTML5在手机端实现视频全屏展示方法


Posted in HTML / CSS onNovember 23, 2020

最近做项目,遇到一个问题,在手机上要实现视频的全屏播放功能。测试了很久,终于找到解决办法。

第一种:将视频放大来控制。

视频在播放的时候,全屏是根据高度来的,如果设置视频 video 标签的宽度是 100% 高度是 110% ,可以实现全屏,超过是溢出隐藏就可以了。

确定:手机屏幕尺寸不固定,这个高度110%不好确定。

第二种:使用 object-fit 来解决

直接上代码:

<video preload='auto' id='video'  src=''  webkit-playsinline='true' playsinline='true'x-webkit-airplay='true' x5-video-player-type='h5' x5-video-player-fullscreen='true'x5-video-ignore-metadata='true'  width='100%' height='100%'><p> 不支持video</p> </video>

编译后在页面内部播放视频而不会跳出使用系统播放器全屏播放视频了。而且z-index属性也可以正常定义,使其他元素可以覆盖在视频上面。

css:保持画面的原有比例

#my-video{
    object-fit: cover;
    object-position: center center;

简单的demo实现:

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>视频播放器</title>
<style type="text/css">
*{margin:0px; padding:0px;}
.app{width: 100%; height:100%; position: absolute; top:0px; right:0px; bottom: 0px; left:0px; overflow: hidden;}
.video{width: 100%; height: 100%;}
#my-video{object-fit: cover; object-position: center center;}
</style>
</head>
<body>
<div id="app" class="app">
    <video preload='auto' id='my-video' ref="video" :src="videoUrl" @click="player" loop autoplay="autoplay" webkit-playsinline='true' playsinline='true'x-webkit-airplay='true' x5-video-player-type='h5' x5-video-player-fullscreen='true'x5-video-ignore-metadata='true'  width='100%' height='100%'><p> 不支持video</p> </video>
</div>
</body>
<script type="text/javascript" src="./js/vue.min.js"></script>
<script type="text/javascript">
// vue 解析
var Application = new Vue({
    el: "#app",
    data: {
        videoUrl:'',
        video:null,
    },
    mounted: function(){
        this.videoUrl = "http://gamaru.wpgcms.com/media/file/movie/dkSdfdqur5uQKV5p.mp4";
        this.video = this.$refs.video;
    },
    methods: {
        player:function(){
            console.log(this.video.clientWidth);
            console.log(this.video.clientHeight);
            if(this.video.paused){
                // 播放
                this.video.play();
            }else{
                // 暂停
                this.video.pause()
            };            
        }
    }
});
</script>
</html>

解释下:object-fit

  • fill: 中文释义“填充”。默认值。替换内容拉伸填满整个content box, 不保证保持原有的比例。
  • contain: 中文释义“包含”。保持原有尺寸比例。保证替换内容尺寸一定可以在容器里面放得下。因此,此参数可能会在容器内留下空白。
  • cover: 中文释义“覆盖”。保持原有尺寸比例。保证替换内容尺寸一定大于容器尺寸,宽度和高度至少有一个和容器一致。因此,此参数可能会让替换内容(如图片)部分区域不可见。
  • none: 中文释义“无”。保持原有尺寸比例。同时保持替换内容原始尺寸大小。
  • scale-down: 中文释义“降低”。就好像依次设置了none或contain, 最终呈现的是尺寸比较小的那个

详细了解 object-fit:https://www.cnblogs.com/e0yu/p/10670990.html

到此这篇关于HTML5在手机端实现视频全屏展示方法的文章就介绍到这了,更多相关HTML5视频全屏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3实现精美横向滚动菜单按钮
Apr 14 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
Jul 16 HTML / CSS
HTML5安全介绍之内容安全策略(CSP)简介
Jul 10 HTML / CSS
简单整理HTML5的基本特性和语法
Feb 18 HTML / CSS
实例讲解使用HTML5 Canvas绘制阴影效果的方法
Mar 25 HTML / CSS
HTML5页面中尝试调起APP功能
Sep 12 HTML / CSS
HTML5实现移动端复制功能
Apr 19 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
May 13 HTML / CSS
AmazeUI 导航条的实现示例
Aug 14 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
Jan 05 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
Feb 03 HTML / CSS
六个好看实用的 HTML + CSS 后台登录入口页面
Apr 28 HTML / CSS
关于HTML5+ API plusready的兼容问题
Nov 20 #HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
Nov 19 #HTML / CSS
Canvas获取视频第一帧缩略图的实现
Nov 11 #HTML / CSS
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
Nov 10 #HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
Nov 10 #HTML / CSS
萌新HTML5 入门指南(二)
Nov 09 #HTML / CSS
萌新的HTML5 入门指南
Nov 06 #HTML / CSS
You might like
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
详解python时间模块中的datetime模块
2016/01/13 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
python实现计算器简易版
2020/12/17 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
html5录音功能实战示例
2019/03/25 HTML / CSS
英国日常交易网站:Wowcher
2018/09/04 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
升学宴主持词
2014/04/02 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
公司车辆管理制度
2015/08/04 职场文书
Python 中 Shutil 模块详情
2021/11/11 Python
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers