문제
나는 몇 초 후에 어떻게 jQuery에서 div를 숨길 수 있습니까? 예를 들어 Gmail의 메시지처럼.
최선을 다했지만 작동 할 수 없습니다.
해결책
이것은 1 초 후 DIV를 숨 깁니다 (1000 밀리 초).
setTimeout(function() {
$('#mydiv').fadeOut('fast');
}, 1000); // <-- time in milliseconds
#mydiv{
width: 100px;
height: 100px;
background: #000;
color: #fff;
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv">myDiv</div>
페이드를하지 않고 숨기고 싶다면 사용하십시오. hide()
.
다른 팁
당신은 시도 할 수 있습니다 .delay()
$(".formSentMsg").delay(3200).fadeOut(300);
DIV를 호출하여 지연 시간을 밀리 초로 설정하고 변경하려는 속성을 설정하십시오.이 경우 .fadeout ()를 사용하여 애니메이션을 만들 수 있지만 .hide ()도 사용할 수 있습니다.
이 작업을 수행하는 정말 간단한 방법이 있습니다.
문제는 .Delay가 애니메이션에만 영향을 미치기 때문에 .hide ()가 지속 시간을 제공하여 애니메이션처럼 행동하는 것입니다.
$("#whatever").delay().hide(1);
짧은 시간을 보내면 일반 .HIDE 기능과 마찬가지로 즉각적인 것으로 보입니다.
JQuery는 시간이 지정된 방식으로 DIV를 숨기는 다양한 방법을 제공하여 간격 타이머 또는 기타 이벤트 처리기를 설정하거나 청소하거나 재설정 할 필요가 없습니다. 다음은 몇 가지 예입니다.
순수한 가죽, 1 초 지연
// hide in one second
$('#mydiv').delay(1000).hide(0);
순수한 가죽, 지연 없음
// hide immediately
$('#mydiv').delay(0).hide(0);
애니메이션 가죽
// start hide in one second, take 1/2 second for animated hide effect
$('#mydiv').delay(1000).hide(500);
사라지다
// start fade out in one second, take 300ms to fade
$('#mydiv').delay(1000).fadeOut(300);
또한 메소드는 큐 이름이나 기능을 두 번째 매개 변수로 가져갈 수 있습니다 (메소드에 따라 다름). 위의 모든 통화 및 기타 관련 통화에 대한 문서는 다음과 같습니다.https://api.jquery.com/category/effects/
$.fn.delay = function(time, callback){
// Empty function:
jQuery.fx.step.delay = function(){};
// Return meaningless animation, (will be added to queue)
return this.animate({delay:1}, time, callback);
}
에서 http://james.padolsey.com/javaScript/jquery-delay-plugin/
(방법의 체인 허용)
jQuery 타이머를 사용하면 객체에 첨부 된 타이머와 관련된 이름을 가질 수 있습니다. 따라서 여러 타이머를 물체에 부착하고 그 중 하나를 멈출 수 있습니다.
$("#myid").oneTime(1000, "mytimer1" function() {
$("#something").hide();
}).oneTime(2000, "mytimer2" function() {
$("#somethingelse").show();
});
$("#myid").stopTime("mytimer2");
평가 함수 (및 친척, 기능, Settimeout 및 SetInterval)는 JavaScript 컴파일러에 대한 액세스를 제공합니다. 이것은 때때로 필요하지만 대부분의 경우 코딩이 극도로 나쁘다는 것을 나타냅니다. 평가 함수는 JavaScript의 가장 잘못 사용되는 기능입니다.
아마도 가장 쉬운 방법은 타이머 플러그인을 사용하는 것입니다. http://plugins.jquery.com/project/timers 그런 다음 같은 것을 부릅니다
$(this).oneTime(1000, function() {
$("#something").hide();
});
우리는 직접 사용할 수 있습니다
$('#selector').delay(5000).fadeOut('slow');