我如何使用jQuery淡出div?

有没有什么办法可以在5秒后淡出div而不使用setTimeOut函数?

大家都知道,在jQuery 1.4中有一个延迟function,对吧?

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

这就是你如何做,而不必添加任何自定义function或插件。 它是原生的jQuery 1.4

案例1:如果你想在5秒后开始淡出,使用这个:

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

然后,像这样使用它:

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

如果不使用setTimeOut,则无法实现此目的

情况2:如果你想淡出的持续时间为5秒,使用这个:

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

如何fadeOut()函数。 会看起来像这样:

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

我只是有同样的问题,在我看来,明显的答案实际上并不能真正解决问题。 如果有人指定它

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

如同所build议的那样,衰落过程本身将持续5秒,但是在5秒之后不会开始

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

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

它使用淡入淡出效果,它是某种“黑客”。 我让fadeTo运行5秒钟,让它淡入1 = 100%不透明度。 用这种方式,用户不会感觉到任何变化。 之后正常的调用fadeOut持续1秒的效果。

我想这个解决scheme很简单,因为它不需要任何额外的插件,可以写在1行。

干杯。

//编辑:
显然现在有这样的可能性:

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

这里有一些更酷,有用的function。

不知道如果你想要它需要5秒或5秒开始。

需要5秒钟的时间:jQuery fadeout函数可以在div上使用,它会减less元素的不透明度,直到0,然后不显示div。 淡入淡出的速度是该函数的一个参数。

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

要在5秒内启动它,您需要一些计时器,这些计时器在文档或窗口准备就绪时开始,或者当div准备就绪时,取决于您想要的内容。

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

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

像这样调用它:

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

注意:你不需要callback。

假设你的意思是“等待五秒钟,然后淡出”,我想你将不得不使用一个插件来强制延迟,例如这个