2014-12-03 104 views
1

這裏有我想要當按下按鈕框動做http://jsfiddle.net/ty5dtpd8/我如何能恢復的動畫功能的動畫

$(':button').click(function(){ 
    $('#box1').animate({left: '+=300'}, 300); 
    $('#box2').animate({top: '-=200', left: '-=100'}, 300); 
    $('#box3').animate({left: '+=600'}, 300);  
}); 

一個簡單的例子。 我的問題是:我怎樣才能讓他們恢復到他們以前的位置,只需點擊一下,而不必再次用相反的值對它們進行動畫處理?

+0

肯定的,但不必相反值添加到每一個框。 – Wonder 2014-12-03 05:59:12

+0

http://jsfiddle.net/pranavcbalan/rxtLht7p/ – 2014-12-03 06:05:08

回答

0

嘗試這樣使用Conditional (ternary) Operator

var i = true; 
 

 
$(':button').click(function() { 
 
    $('#box1').animate({ 
 
    left: (i ? '+' : '-') + '=300' 
 
    }, 300); 
 
    $('#box2').animate({ 
 
    top: (i ? '-' : '+') + '=200', 
 
    left: '-=100' 
 
    }, 300); 
 
    $('#box3').animate({ 
 
    left: (i ? '+' : '-') + '=600' 
 
    }, 300); 
 
    i = !i; 
 
});
div { 
 
    display: block; 
 
    position: absolute; 
 
    height: 100px; 
 
    width: 100px; 
 
} 
 
#box1 { 
 
    background: green; 
 
    top: 50px; 
 
    left: 50px; 
 
} 
 
#box2 { 
 
    background: blue; 
 
    top: 450px; 
 
    left: 350px; 
 
} 
 
#box3 { 
 
    background: red; 
 
    top: 350px; 
 
    left: 50px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="box1"></div> 
 
<div id="box2"></div> 
 
<div id="box3"></div> 
 
<input type="button" value="click me"></input>

+0

謝謝你,非常有幫助!這部分是如何工作的? (我?' - ':'+')是它(我(如果真的話:如果假)' - ':'+')? – Wonder 2014-12-03 06:04:44

+0

檢查https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator – 2014-12-03 06:05:59