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 相关文章推荐
javascript显示选择目录对话框的代码
Nov 10 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
LABjs、RequireJS、SeaJS的区别
Mar 04 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
JavaScript 冒泡排序和选择排序的实现代码
Sep 03 Javascript
jQuery+HTML5实现弹出创意搜索框层
Dec 29 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
vue-router项目实战总结篇
Feb 11 Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 Javascript
angularJs中ng-model-options设置数据同步的方法
Sep 30 Javascript
JS面试题大坑之隐式类型转换实例代码
Oct 14 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
Jan 07 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函数
2008/10/03 PHP
php xml-rpc远程调用
2008/12/19 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
vue.js表格分页示例
2016/10/18 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
用python写测试数据文件过程解析
2019/09/25 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
标准自荐信范文
2014/01/29 职场文书
学习决心书
2014/03/11 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
丧事答谢词
2015/01/05 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技