如何使用jQuery淡出div?

时间:2009-02-11 12:09:54

标签: jquery

有没有办法在不使用setTimeOut函数的情况下在5秒后淡出div?

7 个答案:

答案 0 :(得分:117)

每个人都知道在jquery 1.4中现在有一个延迟函数,对吗?

$('#div').delay(5000).fadeOut(400)

这就是你如何做到这一点,而无需添加任何自定义函数或插件。它原生于jquery 1.4

答案 1 :(得分:29)

案例1:如果你想在5秒后开始 fadeOut,请使用:

jQuery.fn.delay = function(time,func){
    return this.each(function(){
        setTimeout(func,time);
    });
};

然后,像这样使用它:

$('#div').delay(5000, function(){$(#div').fadeOut()})

如果不使用setTimeOut

,则无法实现此目的

案例2:如果您希望fadeOut的持续时间为5秒,请使用:

$('#div').fadeOut(5000)

答案 2 :(得分:20)

fadeOut()功能怎么样?看起来像这样:

$("#myDiv").fadeOut(5000);

答案 3 :(得分:6)

我遇到了同样的问题,在我看来,明确的答案实际上并不能真正满足这个问题。如果指定它像

$("#myDiv").fadeOut(5000);
根据建议,褪色过程本身将持续5秒,但在5秒后不会开始

所以我正在寻找替代方案,而不必包含另一个jQuery插件等。我想出的最简单的解决方案是按如下方式编写:

$("#myDiv").fadeTo(5000,1).fadeOut(1000);

它使用了fadeTo效果,它在某种程度上是“黑客”。我让fadeTo运行5秒钟,让它淡入1 = 100%不透明度。以这种方式,用户不会察觉到任何变化。然后正常调用fadeOut,持续时间为1秒。

我想这个解决方案非常简单,因为它不需要任何额外的插件,可以用1行编写。

干杯。

<强> //编辑:
显然现在有可能做这样的事情:

$('#myDiv').delay(800).fadeOut(1000);

Here are一些更酷,更实用的功能。

答案 4 :(得分:1)

不确定您是否需要5秒钟或5秒内开始。

要花5秒钟:jQuery fadeout函数可用于div,它会降低元素的不透明度,直到它为0,然后不显示div。淡入淡出的速度是函数的参数。

http://docs.jquery.com/Effects/fadeOut#speedcallback

要在5秒钟内启动它,你需要某种计时器,它可以在文档或窗口准备就绪时启动,或者当div准备就绪时根据你的需要启动。

答案 5 :(得分:1)

//我使用这个暂停插件我刚写完

$.fn.pause = function(duration) {
    $(this).animate({ dummy: 1 }, duration);
    return this;
};

这样称呼:

$("#mainImage").pause(5000).fadeOut();

注意:您不需要回调。

答案 6 :(得分:0)

假设你的意思是“等待五秒然后淡出”,我认为你必须使用一个插件来强制延迟,例如this one