2010-06-16 56 views
1

我已經通過論壇搜索,但我找不到解決方案。 我我指的這個線程來執行自動關閉功能: http://groups.google.com/group/fancybox/browse_thread/thread/d09438b7 ... 我的確遵循了肯尼迪的解決方案,它的工作原理恰到好處:Fancybox Auto關閉,但仍然是用戶控制

'onComplete': function() { 
    $("#fancybox-wrap, #fancybox-overlay").delay(3000).fadeOut(); 
    } 

,如果你不希望用戶關閉對話框,然後添加模式=真

的情況是,我想用戶必須關閉,當他們點擊[關閉]按鈕或者點擊 覆蓋的任何地方 模式的選項。我在Rails上使用最新版本的FB和jQuery。

這裏是我的腳本:

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery("#link_post").fancybox({ 
     'autoDimensions':false, 
     'width':380, 
     'height':50, 
     'title':'This message box will automatically close in 10 
seconds.', 
     'titlePosition':'outside', 
     'onComplete': function() { 
     jQuery("#fancybox-wrap, #fancybox- 
overlay").delay(10000).fadeOut(); 
     } 
    }); 
    }); 
</script> 

然而,當我上的關閉按鈕點擊,標題和關閉 按鈕會消逝,但FB的內容和覆蓋仍然 那裏!它只會在10秒後消失。所以,我的問題是 如果用戶在自動關閉之前點擊關閉按鈕 ,如何覆蓋'onComplete'功能?

回答

2

好的,我找到了解決方案。僅供參考,我使用的fancybox V1.3.1和jQuery 5.0上

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    jQuery("#link_post").fancybox({ 
     'autoDimensions':false, 
     'width':380, 
     'height':50, 
     'title':'This message box will automatically close in 10 
seconds.', 
     'titlePosition':'outside', 
     'onComplete': function() { 
     jQuery("#fancybox-wrap, #fancybox- 
overlay").delay(10000).fadeOut(); 
     } 
    }); 

    jQuery("#fancybox-close").click(function() { 
     jQuery('#fancybox-overlay').stop(); 
     jQuery('#fancybox-wrap').stop(); 
    }); 

    }); 
</script> 
2
$(document).ready(function() { 
    $('.fancybox').fancybox({ 
    'afterLoad': function() { 
     $(".fancybox-overlay").delay(3000).fadeOut(); 
    } 
    }); 
}); 

是工作!對於fancybox v2.x.

+0

這是工作還是這將工作? – dove 2012-12-17 15:33:58

+0

經過測試,它確實有效 – 2015-10-13 13:06:42