2017-08-12 63 views
0

目前我有一個div集裝箱#songslist它包裹在父div#guts。我使用jQuery appendTo()方法追加新的列表元素。在追加我使用fadeIn()方法,但只有動畫#songsdiv如何與孩子一起淡入父母的div?

我的問題是,如何在同一時間爲父母div製作動畫,以便一旦添加了新元素,家長div#guts能夠順利地延伸?

這是示例代碼:

HTML:

<div class="jumbotron" id="guts"> 
    <button type="button" id="add-btn">Add to playlist</button> 
    <div id="songs"> 
     <ul> 
      <li>Some list element</li> 
     </ul> 
    </div> 
</div> 

JS:

$(document).ready(function() { 
    $("#add-btn").click(function(){ 
     var new_el = "<li>New element</li>"; 
     $(new_el).appendTo("#songs").hide().fadeIn(); 
    }); 
}); 

CSS:

.jumbotron { 
    padding-top: 30px; 
    padding-bottom: 30px; 
    margin-bottom: 30px; 
    background-color: #eee; 
} 

而且fiddle

回答

3

像這樣的東西應該這樣做。

$(document).ready(function() { 
    $("#add-btn").click(function(){ 
     var new_el = "<li style=margin-bottom:-20px; opacity:0;>New element</li>"; 
     $(new_el).appendTo("#songs").animate({'margin-bottom':'0', 'opacity':'1'}, 400); 
    }); 
}); 

和CSS

.jumbotron { 
padding-top: 30px; 
padding-bottom: 30px; 
margin-bottom: 30px; 
background-color: #eee; 
} 
#songs li:not(:first-of-type) { 
    opacity: 0 
}  
+0

謝謝,這正是我想要的! –

0

使用此:

$(document).ready(function() { 
    $("#add-btn").click(function(){ 
    var new_el = "<li>New element</li>"; 
    $(new_el).appendTo("#songs").hide().slideDown(750); // 750ms for smoothly 
    }); 
}); 
+0

對不起,可能是我不太清楚。我希望父容器能夠順利地進行擴展,但是您的解決方案會使整個容器閃爍。 –

+0

我不知道這就是你想要的,因爲你的代碼閃爍的元素,我以爲你想閃光整個塊。 –

+0

我想擴展父div滑落 –