문제
몇 초의 지연 후 요소와 모든 어린이 요소를 사라지고 싶습니다. 그러나 지정된 시간 지연 후에 효과가 시작되어야한다는 것을 명시 할 방법을 찾지 못했습니다.
해결책
setTimeout(function() { $('#foo').fadeOut(); }, 5000);
5000은 밀리 초에서 5 초입니다.
다른 팁
방금 쓴이 일시 중지 플러그인을 사용합니다
$.fn.pause = function(duration) {
$(this).animate({ dummy: 1 }, duration);
return this;
};
다음과 같이 부릅니다.
$("#mainImage").pause(5000).fadeOut();
참고 : 콜백이 필요하지 않습니다.
편집 : 이제 사용해야합니다 jQuery 1.4. 지연 () 내장 방법. 나는 확인하지 않았지만 플러그인보다 더 '영리한'것으로 가정합니다.
이전에는 이런 일을 할 것입니다
$('#foo').animate({opacity: 1},1000).fadeOut('slow');
첫 번째 애니메이션은 이미 요소에 불투명도 1을 가지고 있기 때문에 아무것도하지 않지만 시간 동안 일시 중지됩니다.
jQuery 1.4에서, 그들은 이것을 프레임 워크에 구축하므로 위와 같이 핵을 사용할 필요가 없습니다.
$('#foo').delay(1000).fadeOut('slow');
기능은 원본과 동일합니다 jQuery.delay()
플러그인 http://www.evanbot.com/article/jquery-delay-plugin/4
가장 좋은 방법은 jQuery 지연 방법을 사용하는 것입니다.
$ ( '#my_id'). Delay (2000) .fadeout (2000);
Fadeto () 메소드를 사용하여 Settimeout을 사용하지 않고 5 초 지연을 설정하지 않을 수 있습니다.
$("#hideAfterFiveSeconds").click(function(){
$(this).fadeTo(5000,1,function(){
$(this).fadeOut("slow");
});
});
체인에 지연을 추가 할 수 있도록 플러그인을 작성했습니다.
예를 들어 $ ( '#div'). fadeout (). 지연 (5000) .fadein (); // 요소가 페이드 아웃, 5 초를 기다렸다가 페이드 요소를 다시 들어냅니다.
애니메이션 해킹이나 과도한 콜백 체인을 사용하지 않고 간단한 깨끗한 짧은 코드 만 사용하지 않습니다.