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 相关文章推荐
js在输入框屏蔽按键,只能键入数字的示例代码
Jan 03 Javascript
js返回上一页并刷新的多种实现方法
Feb 26 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
Apr 01 Javascript
JavaScript操作class和style样式代码详解
Feb 13 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
Jul 25 Javascript
js表单元素checked、radio被选中的几种方法(详解)
Aug 22 Javascript
使用yeoman构建angular应用的方法
Aug 14 Javascript
React Native之prop-types进行属性确认详解
Dec 19 Javascript
通过fastclick源码分析彻底解决tap“点透”
Dec 24 Javascript
关于jquery中attr()和prop()方法的区别
May 28 jQuery
vue页面切换过渡transition效果
Oct 08 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
Jun 27 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动态变静态原理
2006/11/25 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
Symfony的安装和配置方法
2016/03/17 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
javascript 实现map集合
2015/04/03 Javascript
js完美解决IE6不支持position:fixed的bug
2015/04/24 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
angularjs手动识别字符串中的换行符方法
2018/10/02 Javascript
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
Hotels.com中国区:好订网
2016/08/18 全球购物
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
ktv中秋节活动方案
2014/01/30 职场文书
婚礼新人答谢词
2015/01/04 职场文书
五年级作文之学校的四季
2019/12/05 职场文书