JQuery synchrone animation
Dans de nombreux cas, je veux de l'animation pour être exécuté de manière synchrone. Surtout quand je veux faire une série séquentielle des animations.
Est-il un moyen facile de faire un jQuery animate
appel de fonction synchrone?
La seule façon que j'ai pensé, c'est de définir un indicateur vrai lorsque l'animation est terminée, et d'attendre pour ce drapeau.
Vous devez vous connecter pour publier un commentaire.
jQuery ne peut pas faire synchrone animations.
Rappelez-vous que le JavaScript s'exécute sur le navigateur du thread d'INTERFACE utilisateur.
Si vous faites une synchrone de l'animation, le navigateur va geler jusqu'à ce que l'animation se termine.
Pourquoi avez-vous besoin de faire cela?
Vous devriez probablement utiliser jQuery rappel du paramètre et continuer votre code de la méthode dans le rappel, comme ceci:
Cela s'appelle une fermeture.
setTimeout
ne pas exécuter le rappel sur un thread différent; il attend que le thread d'INTERFACE utilisateur à devenir libre, puis appelle la fonction de rappel sur le thread d'INTERFACE utilisateur. Par conséquent, les développeurs Javascript n'a pas besoin de traiter toutes les subtilités de thread-safe développement.Je pense que vous devriez jeter un coup d'oeil à la jQuery la file d'attente() méthode.
Non seulement file d'attente()'s doc expliquer animations jQuery n'est pas vraiment le bloc de l'INTERFACE utilisateur, et en fait les files d'attente après l'un de l'autre.
Il fournit également un moyen de rendre vos animations et des appels de fonction séquentielle (c'est mon meilleure compréhension de ce que vous entendez par "synchrone"), comme:
C'est bien sûr exagéré avec le traitement asynchrone; mais si votre méthode est en fait un simple vieux synchrone méthode javascript, qui pourrait être le moyen de le faire.
Espère que cette aide, et désolé pour mon mauvais anglais...
fwrite(big_data)
de retour APRÈSfwrite
fini d'écrire. Asynchrone signifiefwrite
serait de retour immédiatement et par écrit le big data est fait en parallèle à un autre moment.jQuery fournit une "étape" de rappel pour ses .animate() de la méthode. Vous pouvez accrocher dans cette pour faire synchrone animations:
Je suis d'accord avec @SLaks sur celui-ci. Vous devriez être en utilisant jQuery rappels pour des animations pour créer votre synchrone de l'animation. Vous pouvez prendre ce que vous avez pour votre animation en cours et de les diviser comme suit:
Ici est un module j'ai mis en place un temps, afin de l'aider dans l'exécution des animations de manière séquentielle.
Utilisation:
jQuery synchrone animations. Check this out:
Je suis tombé sur ce http://lab.gracecode.com/motion/
Vraiment facile à utiliser et fonctionne très bien en combinaison avec jquery.
MODIFIER
Les liens semble morte. Si j'ai suivi le sentier de ceux que l'archive wayback correctement, le code est à https://github.com/feelinglucky/motion