2010-08-26 6 views
4

Mon slideToggle est un peu nerveux au bas de la transition de la diapositive. Serait-ce parce qu'il y a un bouton là-bas ou quelque chose comme ça? Tout moyen de le rendre plus lisse. Essayé d'utiliser l'assouplissement, mais pas très réussi. Toutes les suggestionsSlideToggle imperfections

cliquez sur la configuration vidéo pour voir par vous-même The site

$(document).ready(function() { 
    $('.drop').click(function() { 
    $(this).parent().next('li.drop_down').slideToggle(); 
    return false; 
    }); 
}); 

Répondre

4

Donnez votre li.drop_down une largeur fixe. Cela devrait l'éclaircir. Je ne me souviens pas de la raison exacte de cela, mais je l'ai juste testé sur votre site, et cela fonctionne.

Maintenant, la largeur calculée est 217px alors essayez.

.drop_down { 
    width: 217px; 
} 

EDIT: On dirait que vous avez un aussi bien .drop_down2 et un .drop_down3 (peut-être plus). Vous auriez besoin de faire la même chose pour ceux-là. Je suggère d'assigner une classe commune pour chacun.

1

Essayez de stocker la hauteur de chaque élément avant de l'animer, puis ré-appliquez cette hauteur à l'élément juste avant de démarrer l'animation masquée.

Voici un article écrit comment un exemple de le faire: http://www.pewpewlaser.com/articles/jquery-smooth-animation

+0

Réappliquer la hauteur au-dessus et au-dessus semble inutile. Dans mon propre code, j'étais capable de simplement définir la hauteur de chaque élément à basculer à sa hauteur calculée. Quelque chose comme '$ ('dd'). Each (function (i) {this.style.height = $ (this) .height();});' avant de se cacher puis d'appliquer le slideToggle. – chadoh

+0

Ah, je vois. BTW, quelle version de jQuery avez-vous testé? – KatieK

+0

jQuery 1.7.2. :-) – chadoh

0

largeur fixe ne fonctionne pas pour moi, mais qu'est-ce que était l'ajout d'une classe clearfix à l'élément d'animation, depuis que j'avais certains éléments flottants à l'intérieur.