2010-06-16 11 views
1

J'ai cherché à travers le forum mais je ne trouve pas la solution. je suis à ce fil se référant à faire l'auto fonction de fermeture: http://groups.google.com/group/fancybox/browse_thread/thread/d09438b7 ... Je l'ai suivi la solution de JFK qui fonctionne juste à droite:Fancybox Auto Close, mais reste le contrôle de l'utilisateur

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

si vous ne voulez pas l'utilisateur de fermer la boîte , puis ajoutez modal = true

le scénario est que je voudrais que l'utilisateur ait la possibilité de fermer le modal quand ils cliquent sur le bouton [fermer] ou cliquez n'importe où sur la superposition . J'utilise la dernière version de FB et jQuery sur Rails.

Voici mon script:

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

Cependant, quand je clique sur le bouton de fermeture, le titre et le bouton Fermer disparaîtront, mais le contenu et la superposition du FB sont toujours là! il ne disparaîtra que 10 secondes plus tard. Donc, ma question est comment remplacer la fonction 'onComplete' si l'utilisateur clique sur le bouton avant de se fermer automatiquement?

Répondre

2

Très bien, j'ai trouvé la solution. Pour votre information, j'utilise fancybox v1.3.1 et v1.4.2 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(); 
     } 
    }); 

    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(); 
    } 
    }); 
}); 

Il est le travail! pour fancybox v2.x.

+0

c'est un travail ou cela va fonctionner? – dove

+0

Testé, et cela fonctionne –