2011-10-13 4 views
0

ce code me donne une erreur, sur le survol de la souris, il montre un retard sur le changement de fond et je ne sais vraiment pas quel est le problème. Quelqu'un sait-il quel est le problème?erreur et retard sur fond fondu dans

$('#compareDiv').hover(
    function(){ 
     $(this).data($(this).css('background')); 
     $(this).fadeOut().css('background', 'url(images/compare-V1.png) bottom left no-repeat').fadeIn(); 
    }, 

    function(){ 
     $(this).fadeOut().css('background', $(this).data('background')).fadeIn(); 

    }); 

check this out

Répondre

0

Qu'est-ce que vous essayez de le faire? L'un des problèmes est que la méthode fadeOut() est asynchrone. Cela signifie que vous devrez fournir un rappel afin d'exécuter une fonction une fois l'animation terminée. Votre arrière-plan css est défini dès que l'animation est démarrée. En outre, puisque vous enchaînez le fadeIn() juste après le fadeOut(), il est probablement en train de créer des résultats bizarres. Vous devez fournir callbacks aux méthodes d'animation comme celle-ci:

$(this).fadeOut(function() { 
    $(this).css('background', 'url(images/compare-V1.png) bottom left no-repeat'); 
    $(this).fadeIn(); 
}); 

L'autre problème que vous allez rencontrer est si l'utilisateur passe et plane sur très rapidement les animations vont faire la queue. Ce que je recommanderais est d'utiliser un court délai avant de commencer l'animation, et d'annuler le délai d'attente si l'utilisateur sort rapidement.

+0

Je suis en train d'essayer de changer l'image de fond en vol stationnaire avec l'effet de fondu. Je me demande si vous avez un moyen facile de le faire? Quelqu'un m'a dit que le problème que j'ai est d'appeler la même fuction en deux étapes, mais je n'ai aucune idée de ce que cela signifie vraiment très nouveau dans le codage js .. toute aide sera si helful! – karlelizabeth