2015-01-16 23 views
0

我使用jQuery动画来为某些div创建动画。我有什么办法清除动画第二格之前完成第一个div的所有更改?在开始新动画之前清除所有使用jquery动画完成的更改

 $(".order-b").click(function(event){ 
     $(".order-t").animate({top:'30%'}, "slow"); 
     }); 

     $(".counsel-b").click(function(){ 
     $(".counsel-t").animate({top:'30%'}, "slow"); 
     }); 


<div class="process-bars"> 
    <!-- first DIV --> 
    <div class="order-b"> 
     <div class="order-t"> 
      <i class="fa fa-shopping-cart"></i> 
      <h1>Order</h1> 
     </div>          
    </div> 

    <!-- Second DIV --> 
    <div class="counsel-b"> 
     <div class="counsel-t"> 
      <i class="fa fa-shopping-cart"></i> 
      <h1>Order</h1> 
     </div>           
    </div> 
</div> 

CSS代码:

.order-t, counsel-t { 
position:absolute; 
top:52%; 
width: 100%; 
margin:0 auto; 
z-index:2; 

}

我要清除的第一个div的动画,当我点击第二个div。 我该怎么做?!我不想做像下面的代码:这个答案显示

 $(".order-b").click(function(event){ 
     $(".order-t").animate({top:'30%'}, "slow"); 
     $(".counsel-t").animate({top:'52%'}, "slow"); 
     }); 
+0

你可以在小提琴或其他东西中重现这个吗?这将有助于有你的CSS和'.counsel-t'在你的HTML? – jmore009

+0

我编辑了代码。有一个错误 – Afshin

+0

你可以添加你的CSS吗?为什么在第一个代码块中有点击功能,然后在第二个块中有不同的点击功能? – jmore009

回答

0

您可以使用一个回调函数.animate()将运行第二个动画的第一个完成后:

$(".counsel-b").click(function(){ 
    $(".order-t").animate({top:'52%'}, "slow", function(){ 
     $(".counsel-t").animate({top:'30%'}, "slow"); 
    });   
}); 

FIDDLE

+0

你知道吗?这个问题中没有提到每个div的动画。所以,如果我想为他们所有人做这个,那么会有一个真正的垃圾。我正在寻找一个简短的代码来做到这一点。 – Afshin

+0

如果您需要特定问题的帮助,您需要发布确切的问题。这就是你如何去做,并且尽可能短 – jmore009

相关问题