几秒后隐藏div

Jam*_*mes 117 javascript jquery timing

我想知道,在jquery中我怎么能在几秒钟之后隐藏div?比如Gmail的消息.

我已经尽了最大努力,但无法让它发挥作用.

swi*_*ams 240

这将在1秒(1000毫秒)后隐藏div.

setTimeout(function() {
    $('#mydiv').fadeOut('fast');
}, 1000); // <-- time in milliseconds
Run Code Online (Sandbox Code Playgroud)
#mydiv{
    width: 100px;
    height: 100px;
    background: #000;
    color: #fff;
    text-align: center;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mydiv">myDiv</div>
Run Code Online (Sandbox Code Playgroud)

如果你只想隐藏而不褪色,请使用hide().

  • @James,确定最终结果没有区别,但我认为使用`.delay()`的实现对于`jQuery`来说更"本地"和优雅. (3认同)
  • **和**你已经疯狂了*Joel Coehoorn*一次拍得非常好!:) (2认同)

小智 89

你可以尝试一下 .delay()

$(".formSentMsg").delay(3200).fadeOut(300);
Run Code Online (Sandbox Code Playgroud)

调用div设置延迟时间(以毫秒为单位)并设置要更改的属性,在这种情况下我使用.fadeOut()以便它可以设置动画,但您也可以使用.hide().

http://api.jquery.com/delay/

  • 这是更好的因为我不必使用setTimeout和代码更容易阅读. (7认同)

Ois*_*ery 10

有一个非常简单的方法来做到这一点.

问题是.delay只影响动画,所以你需要做的是让.hide()通过给它一个持续时间来表现得像一个动画.

$("#whatever").delay().hide(1);

通过给它一个很好的短暂持续时间,它看起来就像常规.hide函数一样.


Rob*_*uro 9

jquery提供了多种方法来定时隐藏div,不需要设置和稍后清除或重置间隔定时器或其他事件处理程序.这里有一些例子.

纯粹的皮革

// hide in one second
$('#mydiv').delay(1000).hide(0); 
Run Code Online (Sandbox Code Playgroud)

动画隐藏

// hide immediately
$('#mydiv').delay(0).hide(0); 
Run Code Online (Sandbox Code Playgroud)

淡出

// start hide in one second, take 1/2 second for animated hide effect
$('#mydiv').delay(1000).hide(500); 
Run Code Online (Sandbox Code Playgroud)

此外,这些方法可以将队列名称或函数作为第二个参数(取决于方法).可以在此处找到上述所有呼叫和其他相关呼叫的文档:https: //api.jquery.com/category/effects/


Pet*_*mit 6

$.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);
}
Run Code Online (Sandbox Code Playgroud)

来自http://james.padolsey.com/javascript/jquery-delay-plugin/

(允许链接方法)