Отрегулируйте высоту iframe jQuery Fancybox в соответствии с измененным содержимым внутри - PullRequest
5 голосов
/ 15 сентября 2011

Я использую 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 в соответствии с высотой содержимого внутри.

Тем не менее, я скрыл несколько элементов с помощью jQuery .hide () внутри iframe. Всякий раз, когда я хочу .show () эти элементы, сам iframe не изменяет размер вместе с дополнительной высотой видимых элементов.

Как мне это сделать? Спасибо!

1 Ответ

2 голосов
/ 26 марта 2013

Поместите на страницу следующую функцию

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

После, активируйте эту функцию для функции showHide.Например;

function yourShowHideFn(){
    //bla bla bla

    $.fn.ResizeFancy();
}
...