解决手机端视频播放后层级混乱的问题

之前做过一个项目,其中一项功能是查看社交信息流帖子。很多帖子中都包含视频,手机上播放视频后,会有层级混乱的问题。

当时的解决方案是动态的将视频放入Iframe中。以后如果有其他的解决方式会追加进来。

视频使用的是16:9的比例。

示例:

HTML:

<div id="video" class="video-wrap"></div>

CSS:

.video-wrap{ background:#ddd; position: relative; display: block; height: 0; padding: 0; overflow: hidden; padding-bottom: 56.25%; width: 100%; z-index:1;}
.video-wrap iframe{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border:0; z-index:2}
}

JS:

var videoPost;  // 视频封面
var videoSrc;   // 视频地址
var videoWrap = document.querySelector("#video");  // 放入视频的div
var iframe = document.createElement('iframe');
videoWrap.innerHTML = '';
videoWrap.appendChild(iframe);

iframe.src = 'javascript:void((function(){var script = document.createElement(\'script\');' +
  'script.innerHTML = "(function() {' +
  'document.open();document.domain=\'' + document.domain +
  '\';document.close();})();";' +
  'document.write("<head>" + script.outerHTML + "</head><body></body>");})())';

iframe.setAttribute("allowfullscreen", "true");

var v = '<video webkit-playsinline="true" playsinline="true" controls="controls" class="video" preload="none" poster="'+videoPost+'"><source src="'+videoSrc+'" type="video/mp4"></video>';

iframe.contentWindow.document.write('<meta content="text/html;charset=utf-8" http-equiv="Content-Type"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/><meta http-equiv="X-UA-Compatible" content="IE=10"/><style>*{padding:0;margin:0;}.videoWrap{background:#ddd;position:relative;display:block;height:0;padding:0;overflow:hidden;padding-bottom:56.25%;width:100%;}.videoWrap video{position:absolute;top:0;left:0;width:100%;height:100%;border:0;border:0;}</style><div class="videoWrap">'+v+'</div>');

 

posted @ 2017-12-06 16:01  萌面猫  阅读(2855)  评论(0编辑  收藏  举报