有没有办法在不使用setTimeOut函数的情况下在5秒后淡出div?
答案 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