2017-01-24 1 views
0

Der Versuch, die Breite eines festen Elements der Position zu überprüfen. Wenn auf den Menü-Icon-Container geklickt wird, sollte die Breite der Schublade von 0% auf 18% erhöht werden. Die Schublade sollte geschlossen werden, wenn der Dokumentkörper angeklickt wird, jedoch nur, wenn die Breite der Schublade 18% beträgt. Als ich versuchte, die Breite der Schublade auf der Konsole zu loggen, bekam ich 0px, obwohl das Ergebnis protokolliert wird, nachdem die Schublade erweitert wurde. Weiß jemand, was ich vermisse?Javascript Drawer Slider

$("#menu-icon-container").click(function(){ 
    $("#drawer-menu-wrapper").animate({width:'18%'},'fast'); 
    $("#drawer-home-text").text("Home"); 
    $("#drawer-products-text").text("Products"); 
    $("#body-wrapper").css("opacity","0.5"); 
    console.log($("#drawer-menu-wrapper").css("width")); 
}); 
$("#close-icon-container").click(function(){ 
    $("#drawer-menu-wrapper").animate({width:'0%'},'fast'); 
    $("#drawer-home-text").text(""); 
    $("#drawer-products-text").text(""); 
    $("#body-wrapper").css("opacity","1"); 
}); 
$("#body-wrapper").click(function(){ 
    if ($("#drawer-menu-wrapper").css("width")!="0px"){ 
     $("#drawer-menu-wrapper").animate({width:'0%'},'fast'); 
     $("#drawer-home-text").text(""); 
     $("#drawer-products-text").text(""); 
     $("#body-wrapper").css("opacity","1"); 
    } 
}); 
+1

Warum glauben Sie, es melden sich * nach * der Schublade erweitert wird? Der Code zeigt an, dass Sie den Wert ablegen, sobald die Animation startet (nicht wenn sie endet). Animate arbeitet asynchron. –

Antwort

0

Wie gegangenes erwähnt Codierung:

$("#menu-icon-container").click(function(){ 
    $("#drawer-menu-wrapper").animate({width:'18%'},'fast',function(){ 
     console.log($("#drawer-menu-wrapper").css("width")); 
    }); 
});