6
votes

JQuery Slacedown Animation Lag

My JQuery Slide Animation est décalée lors du glissement du #Res div.

Toute suggestion?

jQuery: xxx

CSS: xxx


7 commentaires

Pouvez-vous fournir un exemple de cette traîne dans un jsfiddle.net


Est-ce que ça traîne ou saute-t-il? Qu'est-ce que le retard signifie dans ce contexte?


En outre, juste une observation générale, on dirait que vous avez des identités en double ( externe ) qui n'est pas valide, mais pas pertinente pour votre problème actuel.


@Kevinb oui il saute. Il glisse pour une seconde (pour la première rangée de résultats), puis saute à la fin.


@John qui est un problème très courant avec l'animation Stripliedown. La solution la plus courante est de donner à l'élément une largeur fixe. JQuery calcule la largeur de cet élément en l'affichant hors de la page pour voir quelle est la hauteur, elle le glisse à cette hauteur, puis la définit pour afficher: bloquer et le permet de définir sa propre hauteur. C'est là que le saut arrive. Étant donné que la largeur est de 100%, JQuery n'a aucun moyen de savoir comment il est censé être censé être, à quel point il obtient une hauteur plus courte que prévu, entraînant un saut.


Je ferais $ ('Select'). Promis (). Terminé (fonction () {$ ('# res'). Stratégie ();}); pour ce scénario.


@OhgodWhy qu'est-ce que cela ferait? Le SELECT N'EST-IL N'EST-IL N'EST PAS L'ANIMATION L'objet Promettre une file d'attente d'animation ne résoudrait jamais, non? ou cela résoudrait instantanément, j'oublie.


3 Réponses :


1
votes

Tout d'abord, à quelle vitesse votre page.php envoie une réponse? Qui peut être la réponse entièrement.

Deuxièmement, vous utilisez 2 méthodes concurrentes pour obtenir des trucs effectuées une fois que l'appel AJAX est terminé: a) le paramètre de réussite de l'appel de .ajax () Appel, et b) le nouveau .done () fonction.

a. Sera obsolète à partir de JQuery 1.8 (voir: JQUERY.AJAX TRATULLATION CONTINER LES RÉPONDES : "Succès:" vs ".done"? )

Pourquoi ne pas tout mettre dans .done (): xxx

difficile à savoir sans voir l'exécution, mais les mélanger peut également être la source de comportement inattendu.


0 commentaires

12
votes

Pour contracter un élément sans qu'il saute, l'élément doit avoir une largeur fixe. Voici une démo de démontrer. http://jsfiddle.net/wtkuw/1/

La raison en est que JQuery calcule la hauteur de la cible de l'élément en fonction de sa largeur et de sa teneur. Si sa largeur est de 100%, JQuery ne peut pas calculer avec précision la hauteur entraînant un saut. Plus le contenu est grand, plus le saut est grand.


0 commentaires

0
votes

à quiconque a toujours un problème avec cela, mon problème était que j'avais mon Padding défini avec ! IMPORTANT qui primère probablement les effets de l'animation


0 commentaires