我正在使用FancyBox 2.1.5。
加载并关闭此广告后,我需要在全屏广告(html)上显示该广告,并使用2个选项关闭该广告:使用用户点击的标准选项;如果15秒钟内没有任何操作,则自动隐藏。

第一项任务不是以下问题:

$.fancybox.open([
{
    href : 'http://fancyapps.com/fancybox/demo/1_b.jpg',
    title : 'Title'
}
], {
padding : 0
});


但是如何设置计数器并自动隐藏呢?

我在考虑以下问题:

$(document).ready(function() {
$('.fancybox').fancybox.open([
{
    href : 'http://fancyapps.com/fancybox/demo/1_b.jpg',
    title : 'Title'
}
], {
padding : 0
});

$('.fancybox').fancybox({
afterShow: function(){
    setTimeout( function() {$.fancybox.close(); },15000);
},
afterClose: function(){
    clearTimeout( );
},
});

});


它是否正确?

在此先感谢您的帮助!

最佳答案

我想你宁愿做

$(document).ready(function () {
    $.fancybox.open([{
        href: 'http://fancyapps.com/fancybox/demo/1_b.jpg',
        title: 'Title'
    }], {
        padding: 0,
        afterShow: function () {
            setTimeout(function () {
                $.fancybox.close();
            }, 15000);
        },
        afterClose: function () {
            clearTimeout();
        }
    });
});


JSFIDDLE

编辑:

正如djdavid98正确指出的那样,清除afterClose回调上的超时是多余的。

$(document).ready(function () {
    $.fancybox.open([{
        href: 'http://fancyapps.com/fancybox/demo/1_b.jpg',
        title: 'Title'
    }], {
        padding: 0,
        afterShow: function () {
            setTimeout(function () {
                $.fancybox.close();
            }, 15000);
        }
    });
});


查看更新的JSFIDDLE

09-25 17:11
查看更多