我通过编辑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')
因此,您的上述任何代码都应该可以正常工作。
希望这可以帮助。