高度自适应方法 layer.iframeAuto(index) 能自适应增加iframe弹框高度,却不能自适应减少高度,查看github库开源代码:
https://github.com/sentsin/layer/blob/master/src/layer.js
//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}); };
把上述中的
var heg = layer.getChildFrame('html', index).outerHeight();
改为:
var heg = layer.getChildFrame('body', index).outerHeight();
问题解决!!!
也让弹框自动居中对齐,最终修改后的代码为:
//iframe层自适应宽高 layer.iframeAuto = function(index) { if (!index) { return; } // 高度自适应 增加/减小 by php-note.com //var heg = layer.getChildFrame('html', index).outerHeight(); var heg = layer.getChildFrame('body', 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}); // 居中对齐 by php-note.com //var area = [layero.outerWidth(), layero.outerHeight()]; //var offsetTop = (win.height() - area[1]) / 2; //var offsetLeft = (win.width() - area[0]) / 2; //offsetTop = /%$/.test(offsetTop) ? // win.height() * parseFloat(offsetTop) / 100 // : parseFloat(offsetTop); //offsetLeft = /%$/.test(offsetLeft) ? // win.width() * parseFloat(offsetLeft) / 100 // : parseFloat(offsetLeft); //offsetTop += win.scrollTop(); //offsetLeft += win.scrollLeft(); //layero.css({top: offsetTop, left: offsetLeft}); win.trigger('resize'); };