Je veux animer 2 choses en même temps lorsque la souris survole quelque chose. Par exemple, je veux changer la couleur de fond de box1 avec id = "box1" et la position de box2 avec id = "box2" quand la souris survole une div avec id = "trigger". Mais je ne veux pas qu'ils s'animent dans une file d'attente, c'est-à-dire l'un après l'autre. Je veux qu'ils commencent à animer en même temps et finissent en même temps!comment animer deux choses en même temps dans jquery
Répondre
Vous pouvez simplement les exécuter dans une rangée, comme ceci:
$("#trigger").hover(function() {
$("#box1").stop().animate({ backgroundColor: '#000000' });
$("#box2").stop().animate({ top: "-20px" });
}, function() {
$("#box1").stop().animate({ backgroundColor: '#FFFFFF' }); //set it back
$("#box2").stop().animate({ top: "0px" }); //set it back
});
Il utilise .hover()
pour animer une façon en vol stationnaire, et les animer arrière au moment de quitter. Le .stop()
est juste pour empêcher l'accumulation de file d'attente d'animation. Pour animer une couleur, vous aurez besoin de the color plugin ou de jQuery UI inclus.
Animations en jquery, .animate()
, are implemented à l'aide setInterval()
avec une minuterie 13ms, donc ils vont se produire en dehors du flux normal ... les faire comme ci-dessus n'attend pas le premier à terminer, ils courent en même temps.
Lorsque la première animation démarre, la ligne de code suivante s'exécute sans attendre la fin de l'animation.
Donc, pour faire deux choses à la fois:
$('#trigger').hover(function()
{
$('#box1').animate({ ... });
$('#box2').animate({ ... });
});
Merci pour votre réponse! ;-) – Mehran
Check out jQuery.animate() docs. Il est bien queue
:
queue
: un booléen qui indique si l'animation pour placer dans la file d'attente d'effets. Sifalse
, l'animation commencera immédiatement.
Cependant, il anime des éléments individuels, et la file d'attente est * per * element :) –
pourriez-vous nous en dire plus? – Mehran
S'il est vrai que les appels consécutifs à animer donnent l'impression qu'ils s'exécutent en même temps, la vérité sous-jacente est qu'ils sont des animations distinctes très proches du parallèle.
Pour assurer les animations sont en cours d'exécution en effet au même emploi du temps:
$('#trigger').hover(function() {
$('#box1').animate({..., queue: 'trigger-hover'});
$('#box2').animate({..., queue: 'trigger-hover'}).dequeue('trigger-hover');
});
animations supplémentaires peuvent être ajoutés à la file d'attente « déclencheur vol stationnaire » et tous peuvent être initiés à condition que la dernière animation dequeue leur est.
Cheers, Anthony
- 1. Animer deux divs en même temps, jquery help
- 2. Comment fadeIn et animer en même temps?
- 3. comment afficher deux dialogues en même temps?
- 4. comment utiliser deux fonction en même temps?
- 5. Modèle d'état inferno - comment Model.A peut-il être deux choses différentes en même temps?
- 6. C: Exécuter deux fonctions en même temps?
- 7. jquery, comment animer élément après être sûr qu'il est pas animé en même temps
- 8. Deux publications asynchrones en même temps?
- 9. jQuery - Animer et Intervalle de temps
- 10. Même code faisant deux choses différentes sur deux applications différentes?
- 11. MySQL COUNT dans deux tableaux en même temps
- 12. JQuery - SlideToggle plusieurs DIV en même temps?
- 13. : comment faire deux redimensionnez effet en même temps
- 14. Comment google doc synchronise deux documents en même temps?
- 15. Comment valider deux zone de texte en même temps?
- 16. Comment initialiser deux listes en même temps avec ajax?
- 17. Traiter deux fichiers en même temps en Python
- 18. jquery scrollpane et scrollTo en même temps
- 19. Comment gérer les deux boutons cliquer (gauche + droite en même temps) avec JS/jQuery?
- 20. Comment faire deux choses en un clic dans Windows Form
- 21. Deux boucles à peu près en même temps
- 22. Restauration simultanée de deux bases de données en même temps
- 23. JQuery Animer
- 24. Programmation shell: Exécuter deux applications en même temps
- 25. Deux modèles Rails associés doivent être créés en même temps
- 26. PHP: autoriser uniquement deux adresses IP en même temps
- 27. fadeOut() et slideUp() en même temps?
- 28. même fonction pour deux boutons dans jQuery
- 29. jQuery: Animer en position verticale
- 30. Jquery - Animer en hauteur: auto
et comment je peux les animer un par un? (pas simultanément) – Mehran
@Mehran - Le moyen le * plus sûr * est de vous mettre en file d'attente, comme ceci: http://jsfiddle.net/nick_craver/Cz62t/ –
@NickCraver Est-ce que jQuery utilise le * même * timer pour les animations exécutées dans le même temps? Ou il planifie des temporisations différentes avec des appels setInterval distincts pour chaque objet à animer? –