我如何使用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。
假设你的意思是“等待五秒钟,然后淡出”,我想你将不得不使用一个插件来强制延迟,例如这个