用户关闭fancybox模型箱时如何打开新的弹出窗口?

时间:2018-09-24 03:06:48

标签: javascript jquery fancybox

我想显示一个模型框(花式框),当用户单击关闭按钮或ESC键时,应该显示一个新的弹出窗口。我发现可以使用onclosed触发器,但无法实现它。 (我是编码初学者)

$.fancybox.showLoading();  // show loading
            setTimeout(function(){ // then show popup, deley in .5 second
                $.fancybox({'onClosed' : function() { window.open("https://www.google.com"); }});
            }, 500); // .5 second   
        }, seconds_pop); 
    }

2 个答案:

答案 0 :(得分:0)

根据fancybox3上的文档,您应该使用以下方法实现它:

afterClose: function(){
    window.open("https://www.google.com");
}

您可以在此处查看参考:fancybox options

查找此行afterClose: $.noop, // After instance has been closed

这是我的codePen示例

请记住在关闭图像框后允许弹出窗口位于右上角。

答案 1 :(得分:0)

好像您正在使用v2,但是您可以自由升级到v3并使用类似这样的内容:

$('[data-fancybox="gallery"]').fancybox({
  beforeClose: function(instance, current) {
    current.opts.animationEffect = false;

    $.fancybox.open({
      type : 'html',
      src : '<div>Hello!</div>',
      animationEffect : false,
      beforeClose : function(instance, current) {
        current.opts.animationEffect = "fade";
      }
    });
  }
});

https://codepen.io/anon/pen/NLVqPK?editors=1010

您可以选择使用beforeCloseafterClose回调并切换动画效果以进行无缝的内容更改。