我试图让一个元素淡入,然后在5000毫秒后再次淡出.我知道我可以做一些事情,比如:
setTimeout(function () { $(".notice").fadeOut(); }, 5000);
但这只会控制淡出,我会在回调中添加上面的内容吗?
我试图让一个元素淡入,然后在5000毫秒后再次淡出.我知道我可以做一些事情,比如:
setTimeout(function () { $(".notice").fadeOut(); }, 5000);
但这只会控制淡出,我会在回调中添加上面的内容吗?
Update:从jQuery1.4开始,您可以使用.delay( n )
方法.http://api.jquery.com/delay/
$('.notice').fadeIn().delay(2000).fadeOut('slow');
Note: $.show()
and $.hide()
by default are not queued, so if you want to use $.delay()
with them, you need to configure them that way:
$('.notice')
.show({duration: 0, queue: true})
.delay(2000)
.hide({duration: 0, queue: true});
You could possibly use the Queue syntax, this might work:
jQuery(function($){
var e = $('.notice');
e.fadeIn();
e.queue(function(){
setTimeout(function(){
e.dequeue();
}, 2000 );
});
e.fadeOut('fast');
});
or you could be really ingenious and make a jQuery function to do it.
(function($){
jQuery.fn.idle = function(time)
{
var o = $(this);
o.queue(function()
{
setTimeout(function()
{
o.dequeue();
}, time);
});
};
})(jQuery);
从理论上讲,这将允许你这样做:
$('.notice').fadeIn().idle(2000).fadeOut('slow');