layer弹出层中H5播放器全屏出错的解决方法


Posted in Javascript onFebruary 21, 2017

1.

在layer弹窗组件中

如果使用了flash播放器,全屏是正常的

但若使用了HTML5的播放器,全屏失效

举个栗子

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title></title>
 <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
 <script src="layer/layer.js"></script>
 <style>
 </style>
</head>
<body>
<h1>我是字</h1>
<div id="box">
<video id="video" controls preload="auto" width="400px" height="300px">
 <source src="http://movie.ks.js.cn/flv/other/1_0.mp4" type="video/mp4">
</video>
</div>
<script>
 layer.open({
 type: 1,
 title: false,
 shadeClose: true,
 area: ['400px', '350px'],
 content: $('#box'),
 success: function(layero){
 }
 });
</script>
</body>
</html>

layer弹出层中H5播放器全屏出错的解决方法

layer弹出层中H5播放器全屏出错的解决方法

可以看到全屏不正常了

通过调试发现是这个class的处理影响了全屏的展示

layer弹出层中H5播放器全屏出错的解决方法

layer弹出层中H5播放器全屏出错的解决方法

layer弹出层中H5播放器全屏出错的解决方法

所以,目前的解决办法是在layer层创建之后,移除这个class即可(注意在success回调中置于下一轮事件循环)

layer.open({
 type: 1,
 title: false,
 shadeClose: true,
 area: ['400px', '350px'],
 content: $('#box'),
 success: function(layero){
  console.log(layero)
  // hack处理layer层中video播放器全屏样式错乱问题
  setTimeout(function() {
  // $(layero).removeClass('layer-anim');
  }, 0);
 }
 });

layer弹出层中H5播放器全屏出错的解决方法

2.

video标签的poster属性指代视频未播放前放置的一张图片

如果video容器宽高小于等于poster图的宽高,则图片能充满容器,反之容器左右就会预留黑色栏

除了手动更换一张大图之外,可以结合CSS来控制,实现铺满

举个栗子

layer弹出层中H5播放器全屏出错的解决方法

<div id="box">
 <video id="video" controls preload="auto" width="700" height="300" poster="../poster.png" >
  <source src="http://movie.ks.js.cn/flv/other/1_0.mp4" type="video/mp4">
 </video>
</div>

现在图片宽度比容器小,没铺满,参考这里的讨论 可以用CSS让其撑开(这里相当于放大了,不想放大需自行更换大图)

poster里放一个透明图片(这里使用了一个1px*1px的base64格式透明图片),再用css定义video的background并将其覆盖住

<div id="box">
 <video id="video" controls preload="auto" width="700" height="300" poster="data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==" >
  <source src="http://movie.ks.js.cn/flv/other/1_0.mp4" type="video/mp4">
 </video>
</div>
video {
  background: transparent url('../poster.png') no-repeat 0 0; 
  -webkit-background-size: cover; 
   -moz-background-size: cover; 
    -o-background-size: cover; 
    background-size: cover; 
 }

layer弹出层中H5播放器全屏出错的解决方法

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery ajax执行后台方法
Mar 18 Javascript
jQuery源码分析之Event事件分析
Jun 07 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
Sep 21 Javascript
Json字符串转换为JS对象的高效方法实例
May 01 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
详解小程序输入框闪烁及重影BUG解决方案
Aug 31 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
Dec 12 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
js设计模式之代理模式及订阅发布模式实例详解
Aug 15 Javascript
axios如何取消重复无用的请求详解
Dec 15 Javascript
JavaScript用document.write()输出换行的示例代码
Nov 26 Javascript
微信小程序 支付功能开发错误总结
Feb 21 #Javascript
微信小程序 点击控件后选中其它反选实例详解
Feb 21 #Javascript
jquery实现下拉框左右选择功能
Feb 21 #Javascript
jquery实现页面加载效果
Feb 21 #Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 #Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 #Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
Feb 21 #Javascript
You might like
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
python根据出生日期返回年龄的方法
2015/03/26 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Python3 修改默认环境的方法
2019/02/16 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
pytorch构建多模型实例
2020/01/15 Python
浅析Python 多行匹配模式
2020/07/24 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
标准导师推荐信(医学类)
2013/10/28 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
公司放假通知范文
2015/04/14 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
Golang表示枚举类型的详细讲解
2021/09/04 Golang