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 相关文章推荐
use jscript with List Proxy Server Information
Jun 11 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
Jun 23 Javascript
jQuery Validation插件remote验证方式的Bug解决
Jul 01 Javascript
学习javascript,实现插入排序实现代码
Jul 31 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
Apr 02 Javascript
基于KMP算法JavaScript的实现方法分析
May 03 Javascript
如何通过javascript操作web控件的自定义属性
Nov 25 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
Mar 02 Javascript
Vue cli+mui 区域滚动的实例代码
Jan 25 Javascript
Vue Extends 扩展选项用法完整实例
Sep 17 Javascript
基于JavaScript获取url参数2种方法
Apr 17 Javascript
react结合bootstrap实现评论功能
May 30 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二维数组排序方法(array_multisort usort)
2013/12/25 PHP
深入分析PHP引用(&amp;)
2014/09/04 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python端口扫描简单程序
2016/11/10 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
python实现画一颗树和一片森林
2018/06/25 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
教师远程培训感言
2014/03/06 职场文书
城管综合整治方案
2014/05/01 职场文书
汽车广告策划方案
2014/05/31 职场文书
设备收款委托书范本
2014/10/02 职场文书
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle