2012-01-24 2 views
0

동일한 애니메이션을 요소 집합에주고 싶지만 점진적으로 지연되어 애니메이션이 일종의 '웨이브'를 만듭니다.계단식 애니메이션

나는 그것에 관해 수수께끼를 만들었다. http://jsfiddle.net/ttLJ3/

기본적으로 각 요소는 50ms 단위로 지연되고, 일을하고, 300ms를 기다렸다가 실행을 취소합니다.

그냥 작동하지 않는 것 같습니다. 그것은 아무것도하지 않습니다. .delay(300).show()을 제거하면 모든 요소가 즉시 사라집니다.

어떻게하면됩니까? 미리 감사드립니다! :)

답변

1

여기에서 문제를 해결할 수있었습니다. fx queue

http://jsfiddle.net/ttLJ3/1/

delay 이후 작품, 당신은 지연 그렇지 않으면 숨기기 및 표시 방법이 바로 실행됩니다 작동하는 종류의 정수를 전달해야합니다. 마치 아무 일도 일어나지 않는 것처럼 보이게 만듭니다. 문제를 해결하기 위해 hide 및 show 호출 각각에 0을 전달했습니다.

$(this).delay(50 * index).hide(0).delay(300).show(0); 
+0

은 와우,이 믿을 수 없을만큼 바보 :) 답변 주셔서 너무 감사합니다! –

+0

저는 첫 반응을 보았습니다. 대답 해줘! ;) 잘 숨기기와 표시는'fx queue'에없는 요소를 감추기 위해 매우 유용합니다. 그래서 css에'display : none'을 쓰는 대신 $ (el) .hide();를 쓸 수 있습니다. – Trevor

+0

사실은 원래 hide()와 show() 대신에 플러그인 메소드를 사용하고 싶었습니다. 문제가 무엇인지 알았으니, 어떻게 애니메이션 메소드로 변환 할 수 있습니까? –

1

.hide() doco에 따르면, "지속 기간이 제공되며, .hide()는 애니메이션 방법이된다." 분명히 이것은 애니메이션 큐에 숨김이 수행되지 않는 지속 시간을 제공하지 않으므로 .delay()과 작동하지 않는다는 것을 의미합니다.

그래서 .hide().show()에 짧은 지속 시간을 추가하십시오 :

$(this).delay(50 * index).hide(1).delay(300).show(1); 

업데이트 데모 : http://jsfiddle.net/ttLJ3/2/