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 跨域和ajax 跨域问题小结
Jul 01 Javascript
jQuery基本选择器选择元素使用介绍
Apr 18 Javascript
浏览器页面区域大小的js获取方法
Sep 21 Javascript
jQuery制作简洁的多级联动Select下拉框
Dec 23 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
Mar 03 Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
May 01 Javascript
总结javascript中的六种迭代器
Aug 16 Javascript
JS正则表达式之非捕获分组用法实例分析
Dec 28 Javascript
JS数组交集、并集、差集的示例代码
Aug 23 Javascript
JS实现利用两个队列表示一个栈的方法
Dec 13 Javascript
详细谈谈JavaScript中循环之间的差异
Aug 23 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增删改查示例自己写的demo
2013/09/04 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
Jquery中dialog属性小记
2010/09/03 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
JavaScript变量声明详解
2014/11/27 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python编写一个优美的下载器
2018/04/15 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
Arti-shopping中文官网:大型海外商品一站式直邮平台
2020/03/23 全球购物
工厂车间标语
2014/06/19 职场文书
工作自我评价范文
2015/03/05 职场文书
管理失职检讨书范文
2015/05/05 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
红色电影观后感
2015/06/18 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书
Vue Element plus使用方法梳理
2022/12/24 Vue.js