使用jquery如何使用fadein,延迟然后淡出问题

时间:2010-09-07 14:44:48

标签: jquery css dhtml

我需要制作一些fadeIn,然后在那里停留一秒,然后使用JQuery fadeOut。

我已经尝试了这个但是因为某些原因它起作用了吗?

$('#' + uMessage).fadeIn("fast").fadeOut("slow");  // works
$('#' + uMessage).fadeIn("fast").delay(1000).fadeOut("slow");  // fails

任何我出错的建议?

非常感谢!!!

6 个答案:

答案 0 :(得分:12)

您的第二种方法实际应该没问题,对应于文档(http://api.jquery.com/delay/

另一种方法可能是使用fadeIn完成时调用的回调函数:

$('#' + uMessage).fadeIn("fast", function() { $(this).delay(1000).fadeOut("slow"); });

只是一个猜测

编辑:

如果你不能使用delay()方法,那么你可以试试这个:

$('#' + uMessage).fadeIn("fast", function() { 
  c_obj = $(this);
  window.setTimeout(function() { $(c_obj).fadeOut("slow"); }, 1000); 
});

以下是一个示例:http://jsfiddle.net/KwWFR/

答案 1 :(得分:3)

也许尝试使用API​​ FadeIn函数中指定的回调。淡入完成后将调用此方法。

$('#' + uMessage).fadeIn("fast", function() {
  $(this).delay(1000).fadeOut("slow");
});

答案 2 :(得分:2)

淡出淡出的延迟不起作用。在延迟和回调之后使用队列组合有时适用于其他情况

这最终为我工作:

$('#message').fadeIn(function() {
  window.setTimeout(function() {
    $('#message').fadeOut('slow');
  }, 2000);
});

答案 3 :(得分:1)

我认为问题在于您使用的jQuery版本:

http://jsfiddle.net/b85hx/

这个工作正常。切换到1.3.2并且它已经坏了。

答案 4 :(得分:1)

您使用的是jQuery 1.4+吗?在jQuery 1.4中添加了delay()函数

http://api.jquery.com/delay/

答案 5 :(得分:0)

jQuery官方文档说,第二个参数不是回调,而是缓和风格。

http://api.jquery.com/fadeIn/#fadeIn-duration-easing-complete http://api.jquery.com/fadeOut/#fadeOut-duration-easing-complete

$('#el').fadeOut(750,'swing',function(){
    $('#el').fadeIn();
});

所以只需将你的回调移到第三个参数,一切都会有效。