我想在几秒钟后使一个元素及其所有子元素淡出,但我还没有找到一种指定效果应该在延迟一定时间后开始的方法。
setTimeout(function() { $('#foo').fadeOut(); }, 5000);
5000是五秒的毫秒表示。
我使用了我刚编写的这个暂停插件
$.fn.pause = function(duration) {
$(this).animate({ dummy: 1 }, duration);
return this;
};
像这样调用:
$("#mainImage").pause(5000).fadeOut();
注意:您不需要回调函数。
编辑:现在,您应该使用jQuery 1.4内置的delay()方法。 我没有检查过,但我认为它比我的插件更“聪明”。
以前你会像这样做
$('#foo').animate({opacity: 1},1000).fadeOut('slow');
第一个动画没有做任何事情,因为元素已经设置为不透明度 1,但它会暂停指定的时间。
In jQuery 1.4,他们将这个功能集成到框架中,因此您不必像上面那样使用 hack。
$('#foo').delay(1000).fadeOut('slow');
该功能与原始的jQuery.delay()
插件相同,http://www.evanbot.com/article/jquery-delay-plugin/4
$('#my_id').delay(2000).fadeOut(2000);
您可以通过使用fadeTo()方法并在其中设置5秒的延迟来避免使用setTimeout。
$("#hideAfterFiveSeconds").click(function(){
$(this).fadeTo(5000,1,function(){
$(this).fadeOut("slow");
});
});