优化layer内容高度与设定高度差值小于50的自动修正高度

This commit is contained in:
thinkgem
2021-06-16 17:38:01 +08:00
parent 5654ccb621
commit bbb260d906
3 changed files with 32 additions and 15 deletions

View File

@@ -804,29 +804,45 @@ layer.window = window;
//获取子iframe的DOM
layer.getChildFrame = function(selector, index){
index = index || $('.'+doms[4]).attr('times');
return $('#'+ doms[0] + index).find('iframe').contents().find(selector);
index = index || $('.'+doms[4]).attr('times');
return $('#'+ doms[0] + index).find('iframe').contents().find(selector);
};
//得到当前iframe层的索引子iframe时使用
layer.getFrameIndex = function(name){
return $('#'+ name).parents('.'+doms[4]).attr('times');
return $('#'+ name).parents('.'+doms[4]).attr('times');
};
//iframe层自适应宽高
layer.iframeAuto = function(index){
if(!index) return;
var heg = layer.getChildFrame('html', index).outerHeight();
var layero = $('#'+ doms[0] + index);
var titHeight = layero.find(doms[1]).outerHeight() || 0;
var btnHeight = layero.find('.'+doms[6]).outerHeight() || 0;
layero.css({height: heg + titHeight + btnHeight});
layero.find('iframe').css({height: heg});
//iframe层自适应宽高diffVal差值范围内进行自适应高度
layer.iframeAuto = function(index, diffVal){
if(!index){
return;
}
var iframe = document.getElementById(doms[4] + index);
if (iframe) {
var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
if (iframeWin.document.body) {
var layero = $('#'+ doms[0] + index);
var titHeight = layero.find(doms[1]).outerHeight() || 0;
var btnHeight = layero.find('.'+doms[6]).outerHeight() || 0;
// var heg = layer.getChildFrame('html', index).outerHeight();
var heg = iframeWin.document.body.scrollHeight;
var layerHeight = heg + titHeight + btnHeight;
var layerTop = ($(window).height() - layerHeight) / 2;
if (layerTop > 0){
var $iframe = layero.find('iframe');
if (Math.abs($iframe.height() - heg) < (diffVal || 9000)){
layero.css({height: layerHeight, top: layerTop});
$iframe.css({height: heg});
}
}
}
}
};
//重置iframe url
layer.iframeSrc = function(index, url){
$('#'+ doms[0] + index).find('iframe').attr('src', url);
$('#'+ doms[0] + index).find('iframe').attr('src', url);
};
//返回当前layer的iframe对象的window对象 ThinkGem

View File

@@ -92,7 +92,8 @@ html #layuicss-layer{display: none; position: absolute; width: 1989px;}
.layui-layer-page .layui-layer-content{position:relative; overflow:auto;}
.layui-layer-page .layui-layer-btn,.layui-layer-iframe .layui-layer-btn{padding-top:10px;}
.layui-layer-nobg{background:none;}
.layui-layer-iframe iframe{display: block; width: 100%; border-radius: 3px;}
.layui-layer-iframe{transition:top 0.2s ease-in-out;}
.layui-layer-iframe iframe{display: block; width: 100%; border-radius: 3px; transition:height 0.2s ease-in-out;}
.layui-layer-loading{border-radius:100%; background:none; box-shadow:none; border:none;}
.layui-layer-loading .layui-layer-content{width:60px; height:24px; background:url(loading-0.gif) no-repeat;}