我正在使用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);
  });
}
});

使用附加的onComplete函数,我可以根据内部内容的高度来调整iframe的高度。

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

我该怎么做?谢谢!

最佳答案

将以下功能放在页面上

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

之后,将该函数触发到showHide函数。例如;
function yourShowHideFn(){
    //bla bla bla

    $.fn.ResizeFancy();
}

关于javascript - 根据内部更改的内容动态调整jQuery Fancybox的iframe高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7430604/

10-12 12:26
查看更多