我目前根据需要在我的#main
div中打开Fancybox叠加层,而不是在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元素在叠加层中居中 - 它只是第一个以body
为中心的加载元素。
显然,Fancybox在计算视口尺寸方面遇到了相当大的麻烦,并且可以将其内容集中在body元素中,但在这种情况下,我希望所有元素都集中在我的目标#main
div中, .fancybox-overlay
。
编辑 - 将“parent.lenth”(原始jquery.fancybox.js文件中的拼写错误)更改为“parent.length” - 正如下面的djehrame所指出的那样。行为持续不断。