【发布时间】:2013-12-16 18:42:52
【问题描述】:
我正在尝试在 Fancybox 2 中使用 beforeLoad 和 afterClose。
我需要在 iFrame 中隐藏一个 Flash 动画 - 它位于 #elanceiframe div 内 - 而 Fancybox 打开并显示投资组合,然后在 Fancybox 关闭时再次显示 div。
这是因为 iFrame 不尊重 IE 中的 z-index,并且不会被 Fancybox “淡出”,而是在 Fancybox 图像旁边的前景中。所以我想在 Fancybox 运行时 display:none #elanceiframe div。
这是 fancybox 初始化函数,它可以正常运行投资组合,但 beforeLoad 和 afterClose 不会触发。
$(document).ready(function() {
$("a[data-fancybox-group=portfolio]").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
'overlayColor' : '#000',
'overlayOpacity' : 0.7,
'beforeLoad' : function(){
$("#elanceiframe").css('display', 'none');
},
'afterClose': function() {
$("#elanceiframe").css('display','block');
}
});
});
我是否正确使用了beforeLoad 和afterclose?
我是否需要在 #elanceiframe div 上使用 CSS,例如 display:none?
编辑 12/04/13
上面的例子运行良好;我在函数中调用了错误的div :(
【问题讨论】:
-
它们看起来不错。您甚至可以操纵
iframe的src属性的值,这样您的文档就不会像display: nonejsfiddle.net/Nsxcn 那样跳转,顺便说一句,您的一些API 选项适用于fancybox v1.3.x并且不适用于 v2.x。检查文档以获取正确的选项fancyapps.com/fancybox/#docs -
啊,你说得对;我搞砸了,并按名称调用了错误的 div。但是您保持框架容器大小的想法很好;它在侧边栏中,因此不太重要。但是您应该将其添加为答案,这样我就可以为您提供新的 API 选项建议。
-
已发布答案。谢谢
标签: javascript jquery css iframe fancybox-2