根据里面更改的内容动态调整jQuery Fancybox的iframe高度

Mar*_*out 5 javascript iframe jquery height fancybox

我正在使用jQuery Fancybox在模态窗口中显示表单.我正在使用以下代码:

$("a.iframe").fancybox({
'padding': 0,
'width': 650,
'showCloseButton': false,
'hideOnContentClick': false,
'transitionIn': 'elastic',
'transitionOut': 'elastic',
'onComplete': function () {
  $('#fancybox-frame').load(function () {
    $('#fancybox-content').height($(this).contents().find('body').height() + 20);
  });
}
});
Run Code Online (Sandbox Code Playgroud)

使用额外的onComplete函数,我可以根据内部内容的高度调整iframe的高度.

但是,我在iframe中隐藏了一些jQuery的.hide()元素.每当我想要.show()这些元素时,iframe本身不会随着现在可见元素的额外高度而调整大小.

我怎么能做到这一点?谢谢!

Sed*_*mcu 2

将以下函数放到页面中

$.fn.ResizeFancy = function(){
   $('#fancybox-content').height($('#fancybox-frame').contents().find('body').height() + 20);
};
Run Code Online (Sandbox Code Playgroud)

之后,将此函数触发到您的 showHide 函数。例如;

function yourShowHideFn(){
    //bla bla bla

    $.fn.ResizeFancy();
}
Run Code Online (Sandbox Code Playgroud)