Fancybox 2 beforeLoad 和 afterClose 在活动时不会触发隐藏/显示 div

Posted

技术标签:

【中文标题】Fancybox 2 beforeLoad 和 afterClose 在活动时不会触发隐藏/显示 div【英文标题】:Fancybox 2 beforeLoad and afterClose not firing to hide/show a div when active 【发布时间】:2013-12-16 18:42:52 【问题描述】:

我正在尝试在 Fancybox 2 中使用 beforeLoadafterClose

我需要在 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');
      
   );
);

我是否正确使用了beforeLoadafterclose

我是否需要在 #elanceiframe div 上使用 CSS,例如 display:none

编辑 12/04/13

上面的例子运行良好;我在函数中调用了错误的div :(

【问题讨论】:

它们看起来不错。您甚至可以操纵iframesrc 属性的值,这样您的文档就不会像display: none jsfiddle.net/Nsxcn 那样跳转,顺便说一句,您的一些API 选项适用于fancybox v1.3.x并且不适用于 v2.x。检查文档以获取正确的选项fancyapps.com/fancybox/#docs 啊,你说得对;我搞砸了,并按名称调用了错误的 div。但是您保持框架容器大小的想法很好;它在侧边栏中,因此不太重要。但是您应该将其添加为答案,这样我就可以为您提供新的 API 选项建议。 已发布答案。谢谢 【参考方案1】:

代码中的选项

beforeLoad: function () 
    $("#elanceiframe").css('display ', 'none');
,
afterClose: function () 
    $("#elanceiframe").css('display ', 'block ');

我觉得不错。

您甚至可以操作 iframesrc 属性的值,这样您的文档就不会像 display: none 那样跳转

var thesrc;
$(".fancybox").fancybox(
    beforeLoad: function () 
        thesrc = $("#elanceiframe").attr("src");
        $("#elanceiframe").attr("src", "");
    ,
    afterClose: function () 
        $("#elanceiframe").attr("src", thesrc);
    
);

请参阅 JSFIDDLE。顺便说一句,您的一些 API 选项适用于 fancybox v1.3.x,不适用于 v2.x。检查文档以获取正确的选项:http://fancyapps.com/fancybox/#docs

【讨论】:

感谢您的帮助和建议!我的 Flash 在侧边栏 div 中,因此它不会影响页面的布局,但我最终调用了其他 CSS 来保存 div 的大小。但总的来说,事实证明我在函数中调用了错误的 div。

以上是关于Fancybox 2 beforeLoad 和 afterClose 在活动时不会触发隐藏/显示 div的主要内容,如果未能解决你的问题,请参考以下文章

在fancybox 2的弹出窗口中显示上一个和下一个图像

图片预览插件 fancyBox

jQuery fancybox ie 无法显示关闭按钮

jQuery-plugin-fancybox

FancyBox 2 android 2.3.4 - 无法滚动

Uncaught TypeError: jQuery(...).fancybox is not a function|wordpress中使用的fancybox