2015-12-21 1 views
0

Lorsque je clique sur le bouton bascule, l'attribut de style de l'élément est remplacé par none. Maintenant, quand cela arrive, je veux animer la position gauche du menu. J'ai le code comme ça, mais fonctionne buggy et aussi, quand il devrait revenir à la droite, il apparaît sur la gauche ..Utilisation de fadeIn lorsque l'attribut a changé

var toggled = false; 
$(toggleBtn).click(function() { 
    toggled = !toggled; 
    $(collapse).attr("style", toggled ? 'display:block !important' : 'display:none !important'); 
    if (collapse.attr('style', 'display:block !important')) { 
     $(collapse).animate({left:'10%'}); 
    } else { 
     $(collapse).animate({left:'100%'}); 
    } 
}); 

Toute aide serait appréciée, je vous remercie.

+3

S'il vous plaît partager votre HTML aussi –

+0

Pouvez-vous s'il vous plaît partager html et css vous avez utilisé, il vous aidera à vérifier le problème réel. –

+0

Correspondant à http://stackoverflow.com/questions/4811303/jquery-sequence-fadeout-and-then-remove/14064830#14064830 – Ali

Répondre

1

Vous pouvez simplifier plus que:

var toggled = false; 
$(toggleBtn).click(function() { 
    toggled = !toggled; 
    $(collapse).toggle(toggled) 
       .animate({ left: $(collapse).is(':visible') ? '10%' : '100%' }); 
}); 
+0

Merci pour la solution :) – photoscene

+0

Vous êtes les bienvenus. @photoscene – Jai

0

changer la condition

if (collapse.attr('style', 'display:block !important')) 

avec les éléments suivants

if (collapse.attr('style')=='display:block !important') 
+0

Il serait préférable d'utiliser 'is (': visible')' – alex

+0

yep. c'est vrai. essayez d'utiliser 'if (collapse.is (': visible'))'. –