Je possède ce code:Pourquoi jquery fadeOut agit-il étrangement avec setTimeout?
clearTimeout(tooltiptimeout);
tooltiptimeout="";
$("#tool").fadeOut("slow").queue(function(){
tooltiptimeout=setTimeout(function(){
$("#tool").css("left",item.pageX-33);
$("#tool").css("top",item.pageY-95);
$("#tool").fadeIn("slow");
}, 1000);
$(this).dequeue();
});
Ce qu'il faut faire est la suivante: En tant que l'utilisateur passe son/sa souris sur un objet, une info-bulle affichera là-bas. Ensuite, lorsque l'utilisateur déplace la souris, l'info-bulle devrait immédiatement commencer à disparaître. Plus tard, lorsque l'utilisateur appuie sa souris sur un autre objet, un délai d'attente d'une seconde est appelé avant que l'info-bulle n'apparaisse au nouvel emplacement. Le problème est que, pour le moment, le fadeout n'est pas appelé immédiatement et ne se produit qu'à la fin du setTimeout. (c'est-à-dire au lieu de disparaître d'abord puis de s'afficher un peu plus tard, l'info-bulle reste en place, puis un peu plus tard, elle disparaît et se fond dans un nouvel emplacement).
Ce qui donne?
BTW, ce code a le même problème:
$("#tool").fadeOut("slow",function(){
tooltiptimeout=setTimeout(function(){
$("#tool").css("left",item.pageX-33);
$("#tool").css("top",item.pageY-95);
$("#tool").fadeIn("slow");
}, 1000);
});
C'est le contraire de ce que je veux bien. =/Je veux que le fondu se produise immédiatement, mais que le fondu se produise 1 seconde plus tard. En ce moment, ils se produisent tous les deux 1 seconde plus tard. –
Ahhh ok! Essayez ceci ensuite '.fadeOut ('lent'). Delay (1000) .fadeIn ('lent');' API Docs on delay - http://jqapi.com/#p=delay – HurnsMobile
haha ça marche! Je suis toujours curieux de savoir pourquoi la solution précédente ne fonctionne pas. –