2

我已经为此做了几个小时,然后就放弃了。

我希望 Fancybox 在计时器上触发(说 5 秒后)。我可以让它在页面加载时打开并在几秒钟后关闭。但是,我在网上找到的每个示例都无法开始工作。这是我正在使用的代码

  $(document).ready(function() {

    $(".video").fancybox({
        maxWidth    : 560,
        padding     : 9,
        maxHeight   : 315,
        fitToView   : false,
        width       : '100%',
        height      : '100%',
        autoSize    : false,
        closeClick  : false,
        openEffect  : 'fade',
        closeEffect : 'fade',
afterLoad: function(){
   setTimeout( function() {$.fancybox.close(); },5000);
  }
    });
$('#video').trigger('click');
});

这是html:

<a id="video" class="video fancybox.iframe"
href="http://www.youtube.com/embed/aqut-wQ72Yk?autoplay=1&autohide=1&modestbranding=1&showinfo=0">Test</a>

非常感激任何的帮助。

4

1 回答 1

2

我想你几乎在那里:

$(document).ready(function() {
    setTimeout(function(){
        $('#video').trigger('click');
        setTimeout(function(){
            $.fancybox.close();
        }, 5000)
    }, 5000);
});

在 DOM 准备好后,fancybox 应该在 5 秒内打开,然后在 5 秒后它应该关闭。

多一点解释:

DOM 就绪仅意味着 Web 浏览器已将其置于 HTML 的底部。请记住,“就绪”与“已加载”不同,因为即使在浏览器一路读取 HTML 之后,图像和任何额外的 javascript 仍然需要加载。

在第一个 setTimeout() 函数内部,您有click触发器,以及另一个setTimeout在 5 秒内调用并关闭 fancybox 的函数。

于 2012-08-20T01:47:48.920 回答