我尝试以下列方式应用fancybox“parent”参数(如此处所述http://fancyapps.com/fancybox/#docs):
$.fancybox.open({
autoSize: false,
width: 300,
height: 500,
content: $("#is-edit-div"),
parent: '.is-panel-edit-profile'
});
但它仍然被添加到身体的末端,
$.fancybox.open({
autoSize: false,
width: 300,
height: 500,
content: $("#is-edit-div"),
parent: "form:first"
});
也不工作。
有什么问题?
答案 0 :(得分:2)
我通过编辑fancybox的.js文件解决了这个问题。 我向fancybox开发人员注意到了这个问题,希望他们能在将来的版本中修复它。
我将解释您必须使用文件修改的位置
jquery.fancybox.js
版本2.1.3
转到第1713行,看起来像
this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( 'body' );
这是关于叠加助手的部分,更具体地说是“创建”公共方法。
将此行更改为
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
在哪里写$('形式:第一个')
因此,上述任何代码都可以正常使用。
希望这有帮助。
答案 1 :(得分:0)
Fancybox 2现在支持parent
参数(至少在2.1.5中)。请参阅下面的Fancyapps截图