0

我尝试通过以下方式应用fancybox“父”参数(如此处所述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" 
});

也不工作。
有什么问题?

4

2 回答 2

2

我通过编辑fancybox的.js文件解决了这个问题。我向fancybox 开发人员指出了这个问题,希望他们能在未来的版本中修复它。

我将使用版本 2.1.3的文件
jquery.fancybox.js解释你必须修改的地方

转到第 1713 行,看起来像

this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( 'body' );  

这在 Overlay helpers 部分中,在“create”公共方法中更具体。

改变这条线看起来像

this.overlay = $('<div class="fancybox-overlay"></div>').appendTo(F.coming.parent || 'body' );

对我来说,我选择将它添加到表单中:首先,这在叠加灯箱中添加了一个滚动条。然后,您需要更改 CSS 类 .fancybox-overlay 以使属性 overflaw-y: 隐藏。

如果你想使用缩小版
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')

因此,您的上述任何代码都应该可以正常工作。

希望这可以帮助。

于 2013-01-06T13:22:51.793 回答
0

Fancybox 2 现在支持该parent参数(至少在 2.1.5 中)。请参阅下面 Fancyapps 的屏幕截图


Fancybox 2 API 文档的屏幕截图

于 2015-01-29T21:35:21.973 回答