2010-06-16 6 views
1

Я уже просматривал форум, но не могу найти решение. я ссылаюсь на эту тему, чтобы сделать автоматическую близкую функцию: http://groups.google.com/group/fancybox/browse_thread/thread/d09438b7 ... я последовать решение Джона Кеннеди, который работает только право:Fancybox Auto Close, но остается пользовательским управлением

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

, если вы не хотите, чтобы пользователь, чтобы закрыть окно , затем добавьте modal = true

Сценарий: Я хотел бы, чтобы у пользователя была возможность закрыть модальный код , когда они нажимают кнопку [закрыть] или нажимают в любом месте наложения . Я использую последнюю версию FB и jQuery on Rails.

Вот мой сценарий:

<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> 

Однако, когда я нажал на кнопку закрытия, название и близко кнопка исчезнет, ​​но содержание в ФБ и наложение еще там! он будет исчезать только через 10 секунд. Итак, мой вопрос: , как перезаписать функцию onComplete, если пользователь нажимает кнопку закрытия до того, как она автоматически закрывается?

ответ

2

Хорошо, я нашел решение. FYI, я использую FancyBox v1.3.1 и JQuery версии 1.4.2

<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

+0

Протестировано, и оно работает –

Смежные вопросы