몇 초 후에 요소와 모든 자식 요소를 페이드 아웃하고 싶습니다. 하지만 특정 시간 지연 후에 효과가 시작되도록 지정하는 방법을 찾지 못했습니다.지연 JQuery 효과
답변
setTimeout(function() { $('#foo').fadeOut(); }, 5000);
5000은 밀리 초 단위로 5 초입니다.
참고 이것은 Javascript의 기본 제공 setTimeout 기능을 사용하고 있습니다. –
이것은 부분적으로 만 그의 질문에 대답한다고 생각합니다. –
아이들이 #foo 엘리먼트 안에 있다면 너무 퇴색해야합니다 ... – swilliams
fadeTo() 메서드를 사용하고 5 초 지연을 설정하여 setTimeout을 사용하지 않아도됩니다.
$("#mainImage").pause(5000).fadeOut();
참고 :
$("#hideAfterFiveSeconds").click(function(){
$(this).fadeTo(5000,1,function(){
$(this).fadeOut("slow");
});
});
이 종류의 블록을 수행하는 것은 setTimeout에 비해 매우 많은 CPU를 사용합니다. 나는 이점을 보지 못했다. - 왜 원시 타이머가 필요하지 않습니까? – redsquare
내가이 일시 정지 플러그인 난 그냥
$.fn.pause = function(duration) {
$(this).animate({ dummy: 1 }, duration);
return this;
};
전화를 같이
을 썼다 사용하면 콜백이 필요하지 않습니다.편집 : 이제 jQuery 1.4. built in delay() 방법을 사용해야합니다. 나는 체크하지 않았지만 나는 나의 플러그인보다 더 '더 똑똑한'것이라고 생각한다.
이렇게하면 많이 도움이됩니다!고맙습니다 :-) – Jesse
jQuery가 일시 중지() 기능을 추가했는지 조심해 주시길 바랍니다. 하지만 이런 좋은 일을 추상화 한 것은 –
누군가 콜백이 필요 없다는 것을 설명 할 수 있습니까? 왜 이런 일이 즉시 돌아 오지 않는지 잘 모르겠다. –
나는 지연을 체인에 추가 할 수 있도록 플러그인을 작성했습니다.
예를 들어 $ ('# div') .fadeOut(). 지연 (5000) .fadeIn(); // 요소를 페이드 아웃하고 5 초간 기다리십시오. 요소를 다시 페이드합니다.
애니메이션 해킹이나 과도한 콜백 체인을 사용하지 않고 간단하고 간단한 코드 만 사용합니다.
은 이전에 당신은 당신이 이미 요소 불투명도 일이 있기 때문에 첫 번째 애니메이션은 아무것도되지 않습니다
$('#foo').animate({opacity: 1},1000).fadeOut('slow');
뭔가를 할 것이다, 그러나 그것은 시간의 양에 대한 일시 정지 것 .
jQuery 1.4에서는 위와 같은 해킹을 사용하지 않으므로 프레임 워크에 jQuery 1.4가 내장되어 있습니다. .
$('#foo').delay(1000).fadeOut('slow');
기능은 원래 jQuery.delay()
플러그인 가장 좋은 방법은 jQuery를 지연 방법을 사용하는 것입니다 http://www.evanbot.com/article/jquery-delay-plugin/4
과 동일합니다 :
$ ('#의 MY_ID') 지연 (2000). fadeOut (2000);
jQuery 1.4 이상 –
요소의 자식이 요소로 페이드되지 않았을 때의 예를 들려 줄 수 있습니까? – tvanfosson
죄송합니다, 실수는, 게시물을 업데이 트합니다 –