繁体   English   中英

延迟JQuery效果

[英]delay JQuery effects

我希望在延迟几秒后淡出一个元素及其所有子元素。 但我还没有找到一种方法来指定效果应该在指定的时间延迟后开始。

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,但它会暂停一段时间。

在jQuery 1.4中,他们已经将它构建到框架中,因此您不必像上面那样使用hack。

$('#foo').delay(1000).fadeOut('slow');

功能与原始的jQuery.delay()插件相同http://www.evanbot.com/article/jquery-delay-plugin/4

最好的方法是使用jQuery延迟方法:

$( '#添加my_id')延迟(2000).fadeOut(2000年)。

我写了一个插件,让你在链中添加一个延迟。

例如$('#div')。fadeOut()。delay(5000).fadeIn(); //淡出元素,等待5秒,淡入元素。

它不使用任何动画黑客或过多的回调链接,只是简单干净的短代码。

http://blindsignals.com/index.php/2009/07/jquery-delay/

您可以通过使用fadeTo()方法避免使用setTimeout,并在其上设置5秒延迟。

$("#hideAfterFiveSeconds").click(function(){
  $(this).fadeTo(5000,1,function(){
    $(this).fadeOut("slow");
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM