我需要制作一些fadeIn,然后在那里停留一秒,然后使用JQuery fadeOut。
我已经尝试了这个但是因为某些原因它起作用了吗?
$('#' + uMessage).fadeIn("fast").fadeOut("slow"); // works
$('#' + uMessage).fadeIn("fast").delay(1000).fadeOut("slow"); // fails
任何我出错的建议?
非常感谢!!!
答案 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)
答案 4 :(得分:1)
您使用的是jQuery 1.4+吗?在jQuery 1.4中添加了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();
});
所以只需将你的回调移到第三个参数,一切都会有效。