В настоящее время у меня есть оверлей Fancybox, открывающийся внутри моего #main
div по желанию, а не поведение по умолчанию при открытии внутри элемента body
.
Я сделал это, как было предложено в нескольких потоках stackoverflow, изменив скрипт jquery.fancybox.js в этой строке:
this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( parent && parent.length ? parent : 'body' );
к этому:
this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( parent && parent.length ? parent : '#main' );
Это работает для позиционирования наложения.
Я хочу, чтобы Fancybox центрировал весь всплывающий контент в этом оверлее. Однако первое открывающееся содержимое Fancybox находится не в центре оверлея, а внутри body
— такое неожиданное поведение иногда приводит к тому, что содержимое fancybox частично выходит за пределы оверлея. Последующие элементы fancybox центрируются внутри оверлея — только первый загруженный элемент центрируется на body
.
Очевидно, что Fancybox прилагает немало усилий, чтобы вычислить размеры области просмотра и сделать возможным центрирование своего содержимого внутри элемента body, но в этом случае я хочу, чтобы все элементы были центрированы в моем целевом #main
div, в пределах .fancybox-overlay
.
Правка: "parent.lenth", опечатка в исходном файле jquery.fancybox.js, изменена на "parent.length", как указано djehrame ниже. К сожалению, поведение сохраняется.
parent
API? Проверьте это stackoverflow.com/a/19689842/1055987, особенно № 2 - person JFK   schedule 03.03.2014parent
, похоже, не управляет параметром, который я пытаюсь установить. Я думаю, вы могли бы сказать, что я пытаюсь изменить область действия — элемент DOM — внутри которого работает Fancybox (включая оверлей), сbody
на#main
- person nimmolo   schedule 04.03.2014parent
, кажется, добавляет новый элемент DOM. Я правильно понимаю? - person nimmolo   schedule 04.03.2014.fancybox-wrap
является родным братом элемента.fancybox-overlay
, а после загрузки второго элемента галереи.fancybox-wrap
является дочерним элементом offancybox-overlay
как и должно быть. - person nimmolo   schedule 04.03.2014