Fluidité sur jquery.slideUp();

Mammouth du PHP | 1353 Messages

21 août 2008, 15:26

Bonjour,

J'utilise la fonction slideUp() de jquery pour deplier et replier des blocs progressivement.

Ma structure est du type suivant :

Code : Tout sélectionner

<div id="gros_bloc"> <h2 id="tst1" onclick="inverse(this.id)">TST1</h2> <div id="tst1_content"> <h3>blabla</h3> </div> <h2 id="tst2" onclick="inverse(this.id)">TST2</h2> <div id="tst2_content"> <h3>blabla2</h3> </div> <h2 id="tst3" onclick="inverse(this.id)">TST3</h2> <div id="tst3_content"> <h3>blabla3</h3> </div> </div>
Ma fonction inverse fait simplement :

Code : Tout sélectionner

function inverse(bloc_id) { var bl = document.getElementById(''+bloc_id); if(bl.className == 'replie') { bl.className = ""; $("#"+bloc_id+"_content").slideDown("normal"); } else { bl.className = 'replie'; $("#"+bloc_id+"_content").slideUp("normal"); } }
Mon problème est le suivant : Le slideUp se passe bien sauf à la fin, ou d'un coup il fait "disparaitre" le bloc (tst1, 2 ou 3) assez subitement ce qui fait une fin de mouvement pas fluide, on dirait que le mouvement suit une ligne puis d un coup franchi une marche... Je ne sais pas quoi modifier dans le code ou le css pour avoir un effet fluide de A à Z, sachant par ailleurs que le slideDown se passe à merveille....

Merci.
Tell me and I forget. Teach me and I remember. Involve me and I learn.

x@v
Mammouth du PHP | 570 Messages

22 août 2008, 23:00

essaie toggle, c'est un problème récurent, j'avais lut quelque chose de similiare dans une discution.
Je ne peux pas beaucoup t'aider mais :
document.getElementById(''+bloc_id); == $(''+bloc_id);