Я решил эту проблему, отредактировав файл .js fancybox. Я сообщил об этой проблеме разработчикам fancybox, и, надеюсь, они исправят ее в будущих выпусках.
Я объясню, где вы должны изменить, используя файл
jquery.fancybox.js
версии 2.1.3.
Перейдите к строке 1713, которая выглядит как
this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( 'body' );
Это находится в разделе о вспомогательных функциях Overlay, более конкретно в общедоступном методе «создать».
Измените эту строку, чтобы она выглядела как
this.overlay = $('<div class="fancybox-overlay"></div>').appendTo(F.coming.parent || 'body' );
Для меня, который я решил добавить в форме: во-первых, это добавило полосу прокрутки в лайтбокс наложения. Затем вам нужно изменить класс CSS .fancybox-overlay, чтобы иметь атрибут overflaw-y: hidden.
Если вы хотите использовать уменьшенную версию
jquery.fancybox.pack.js
, вы можете просто упаковать/уменьшить длинную версию, указанную выше.
Или просто изменить упакованную версию,
выполнив поиск кода.
<div class="fancybox-overlay">
и вместо добавления кода
F.coming.parent ||
добавить что-то вроде
b.coming.parent ||
Обратите внимание:
укажите значение родительского параметра, как указано в текущей документации fancybox
http://fancyapps.com/fancybox/#docs
$(".fancybox").fancybox({
parent: "form:first" // jQuery selector
});
Не используйте синтаксис, который я нашел на других сайтах
https://github.com/fancyapps/fancyBox/issues/283
где пишут $('form:first')
Таким образом, любой из приведенных выше кодов должен работать нормально.
Надеюсь это поможет.
person
johanna7
schedule
06.01.2013