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 相关文章推荐
textarea的value是html文件源代码,存成html文件的代码
Apr 20 Javascript
深入理解JavaScript是如何实现继承的
Dec 12 Javascript
探讨js字符串数组拼接的性能问题
Oct 11 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
Aug 28 Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 Javascript
浅谈bootstrap源码分析之tab(选项卡)
Jun 06 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
Jun 24 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
Jan 25 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
Vue组件间的通信pubsub-js实现步骤解析
Mar 11 Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
PHP入门速成(2)
2006/10/09 PHP
生成静态页面的PHP类
2006/11/25 PHP
在普通HTTP上安全地传输密码
2007/07/21 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
thinkPHP中create方法与令牌验证实例浅析
2015/12/08 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
跟老齐学Python之编写类之二方法
2014/10/11 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
大学生涯自我鉴定
2014/01/16 职场文书
导游实习生自荐书
2014/01/28 职场文书
协议书的格式
2014/04/23 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
群众路线剖析材料
2014/09/30 职场文书
爱心捐款活动总结
2015/05/09 职场文书
交通事故调解协议书
2015/05/20 职场文书
初中政治教学工作总结
2015/08/13 职场文书