2011-03-26 4 views
0

Je ne fais qu'un panneau, (div) qui a un cookie, et qui peut être ouvert ou fermé. Je voudrais cependant animer la div ouverte ou fermée sur clic.animer div de haut en bas

Le code que j'ai à ce jour est:

var state; 
window.onload=function() { 
    obj=document.getElementById('closeable'); 
    state=(state==null)?'hide':state; 
    obj.className=state; 

    document.getElementById('setup').onclick=function() { 
     obj.className=(obj.className=='show')?'hide':'show'; 
     state=obj.className; 
     setCookie(); 

     return false; 
    } 
} 

function setCookie() { 
    exp=new Date(); 
    plusMonth=exp.getTime()+(31*24*60*60*1000); 
    exp.setTime(plusMonth); 
    document.cookie='State='+state+';expires='+exp.toGMTString(); 
} 

function readCookie() { 
    if(document.cookie) { 
     state=document.cookie.split('State=')[1]; 
    } 
} 
readCookie(); 

Toute aide appréciée

Répondre

2

Je ne suis pas sûr, si j'ai bien compris votre question. Mais, d'après ce que j'ai compris, j'ai monté un violon pour réaliser ce que tu veux. Regarde.

http://jsfiddle.net/mvelaga/de4FE/1

Edit:

Mise à jour du violon pour résoudre le scénario mentionné dans les commentaires

http://jsfiddle.net/mvelaga/de4FE/2/

+0

parfait Mahesh, je vous souhaite vécu à Brisbane. Nous vous emploierons immédiatement. Grande camarade de travail, merci encore (deuxième fois que vous nous avez aidé) salutations – 422

+0

jsfiddle à nouveau! – typeof

+0

Heureux d'aider :) –

1

Je suppose que vous utilisez jQuery parce que vous avez balisé il.

Essayer: // le dom prêt

jQuery(function($) { 
    var panel = $('#closable'); 
    var state = 'hide'; 

    $('#setup').click(function(e) { 
     e.preventDefault(); 
     if(state == 'hide') { 
      // you can use the animate() or 
      // fadeIn()/fadeOut methods, too 
      // depending on desired effect 
      panel.slideDown(); 
      $(this).text('Hide'); 
      state = 'show'; 
     } else 
      panel.slideUp(); 
      $(this).text('Show'); 
      state = 'hide'; 
     } 
     setCookie(); 
    }) 
    function setCookie() { 
     ... 
    } 
    function readCookie() { 
     ... 
    } 
}); 
+0

merci typeof :) – 422

+0

Hmm, Il semble économique sur le code lol. Mais comment l'initialiser dans le html>? et définir l'état de cookie? – 422

+0

Le document se charge et le gestionnaire de clic est associé à votre lien Afficher/Masquer. Les fonctions de cookie que vous aviez devraient toujours fonctionner, donc je ne les ai pas inclus. Éditera pour vous montrer où vous devriez les placer. – typeof

Questions connexes