2014-11-03 3 views
-3

멋진 애니메이션을 얻으려고합니다.하지만 원하는 효과를 내기 위해 CSS 만 사용하고 있습니다. 현재 animate.css를 사용하여 새 요소를 애니메이션하고 있지만 애니메이션이 없으므로 이전 요소가 정상적으로 움직이지 않습니다.div의 스택을 우아하게 애니메이트합니다.

여기 내 애니메이션의 현재 상태를 보여주는 http://jsfiddle.net/tcq8kuy6/1/입니다. 내가 한이 일을하기 위해

setInterval(function(){ 
    var newbox = "<div class='child animated bounceInDown'></div>" 
$('.container').prepend(newbox); 

}, 2000); 
+0

CSS3 translateY()를 사용하여 새 요소를 추가하기 전에 하위 요소 스택을 조금 움직이게하지 않는 이유는 무엇입니까? 이러한 개별 자식 요소의 높이가 알려진 경우 – Kiwi1

+0

으로 잘 알려져 있기 때문에 divs는 크기가 다릅니다. 삽입을하기 전에 슬라이드를 100px 아래로 슬라이드하는 방법을 찾지 못했습니다. – Astronaut

답변

1

fiddle

몇 가지 : -

1 CSS

.child { 
width: 40px; 
height: 40px; 
display: block; //inline block results in jerkiness when inserting items 
margin:2px; //added margin to compensate for inline-block becoming block. 
border: 1px solid #AAAAAA; 
} 

2 JS

setTimeout(function(){ 
    var newbox = "<div class='child animated bounceInDown'></div>" 
    $(newbox).prependTo('.container').hide().slideDown(500);//notice that I prepend to the container, then hide the 'newbox' and then slide it down -> this gives the desired effect. 

}, 2000); 

희망이 h 엘프.

+0

안녕하세요, Graham이 바이올린을 주셔서 감사합니다. hide 기능이하는 일은 무엇입니까? – Astronaut

+1

div 앞에 추가하면 40px의 높이가 표시됩니다. 이렇게하면 기존 항목이 얼버무 리게됩니다. 따라서'.hide() '는 바로 그 일을합니다. 삽입하고있는 div를 숨 깁니다 (.hide를 CSS 디스플레이 설정 : 없음), 기존의 모든 div가 신속하게 삭제 된 후 특정 브라우저에서 다시 작동하게됩니다. –

+0

설명 주셔서 감사합니다! – Astronaut

관련 문제