2009-05-31 7 views
24

Je cette jQuery:jQuery animation bascule

$(document).ready(function() 
{ 
    $("#panel").hide(); 

    $('.login').toggle(
    function() 
    { 
     $('#panel').animate({ 
     height: "150", 
     padding:"20px 0", 
     backgroundColor:'#000000', 
     opacity:.8 
}, 500); 
    }, 
    function() 
    { 
     $('#panel').animate({ 
     height: "0", 
     padding:"0px 0", 
     opacity:.2 
     }, 500); 
    }); 
}); 

Cela fonctionne très bien, mais je dois étendre la fonctionnalité un peu. Je veux également manipuler de manière similaire les propriétés d'une autre div en synchronisation avec la div #panel. J'ai essayé d'ajouter deux autres fonctions relatives à la div secondaire, mais je viens d'avoir une bascule en 4 phases ... haha! Pardonnez mon ignorance!

Merci les gars!

+0

Pourquoi ne pouvez-vous pas ajouter le code pour manipuler cette deuxième DIV dans les deux premières fonctions? Est-ce que je manque quelque chose? –

+0

Non, il me manquait! Je suis un jscript noob. –

Répondre

49
$('.login').toggle(
    function(){ 
     $('#panel').animate({ 
      height: "150", 
      padding:"20px 0", 
      backgroundColor:'#000000', 
      opacity:.8 
     }, 500); 
     $('#otherdiv').animate({ 
      //otherdiv properties here 
     }, 500); 
    }, 
    function(){ 
     $('#panel').animate({ 
      height: "0", 
      padding:"0px 0", 
      opacity:.2 
     }, 500);  
     $('#otherdiv').animate({ 
      //otherdiv properties here 
     }, 500); 
}); 
+0

Ahh ... Je ne peux pas croire que j'ai raté ça! Merci beaucoup! –

+2

Cette fonction est obsolète à partir de JQuery 1.8 et supprimée dans JQuery 1.9. http://api.jquery.com/toggle-event/#entry-longdesc – Xtrinity

6

Je ne pense pas que l'ajout d'une double fonction dans la fonction de bascule fonctionne pour un événement click enregistré (À moins que je me manque quelque chose)

Par exemple:

$('.btnName').click(function() { 
top.$('#panel').toggle(function() { 
    $(this).animate({ 
    // style change 
    }, 500); 
    }, 
    function() { 
    $(this).animate({ 
    // style change back 
    }, 500); 
}); 
+1

alors qu'est-ce que vous essayez de dire? Je ne pense pas qu'il est utile de donner le code que dosent travail et dire "Oh, il dosent travail". poster une vraie solution. – Dementic

+0

Je pense qu'il est utile de donner du code qui fonctionne et de dire "Oh, ça marche". – Alireza

+0

Cette fonction est obsolète à partir de JQuery 1.8 et supprimée dans JQuery 1.9. http://api.jquery.com/toggle-event/#entry-longdesc – Xtrinity

-7
onmouseover="$('.play-detail').stop().animate({'height': '84px'},'300');" 

onmouseout="$('.play-detail').stop().animate({'height': '44px'},'300');" 

Il suffit de mettre deux arrêts - un sur la souris et un sur la souris.

+1

L'utilisation de JavaScript en ligne n'est pas un bon exemple. Si vous utilisez déjà jQuery, utilisez des gestionnaires d'événements à la place. – akluth