2015-05-15 22 views
6

Próbowałem naśladować kod innych, ale bez powodzenia. Jak mogę uzyskać Div1, aby przełączać lewy margines: 30% po kliknięciu DivButton? Dziękuję Ci.Animacja marginesu przełączania - po lewej stronie div przy użyciu jQuery?

http://jsfiddle.net/3nc62rec/

HTML

<div id="Div1"></div> 
<br><br> 
<div id="DivButton"></div> 

CSS

#Div1{ 
    background:blue; 
    width:50%; 
    height:50px; 
    margin-left:0%; 
} 

#DivButton{ 
    background:green; 
    width:20px; 
    height:20px; 
} 

JS

$('#DivButton').click(function(){     

}); 


/* 
var toggleWidth = $("#Div1").width() == 365 ? "98%" : "365px"; 
$('#Div1').animate({'width': toggleWidth}, 300, resize); 
*/ 

/* 
var toggleMargin = $("#Div1").marginLeft() == 30% ? "10%" : "30%"; 
$('#Div1').animate({'margin-left': toggleMargin}, 300, resize); 
*/ 

Odpowiedz

3
var $div1 = $('#Div1') 
$('#DivButton').click(function() { 
    $div1.toggleClass('isOut') 
    var isOut = $div1.hasClass('isOut') 
    $div1.animate({marginLeft: isOut ? '30%' : '0'}, 300) 
}) 

http://jsfiddle.net/3nc62rec/2/

+0

Neato burrito, to działa. :) Dziękuję Ci. – Sherri

1

Można używać animacji jQuery.

$('#DivButton').animate({marginleft: "30%"}, 500); 
+0

myślę, że zdaje sobie sprawę, że? Jest w jego kodzie źródłowym, skomentował: –

1

Spróbuj tego:

$('#DivButton').click(function() { 
    $("#Div1").animate({ 
     marginLeft: '30%' 
    }, 500); 
}); 

JSFiddle Demo

Powiązane problemy