我有一个小脚本必须显示下一个图像,所以我写了类似的东西
$(".img1").delay(2500).fadeIn(600);
$(".img2").delay(6200).fadeIn(600);
$(".img3").delay(8700).fadeIn(600);
$(".img4").delay(11200).fadeIn(600);
$(".img5").delay(13700).fadeIn(600);
$(".img6").delay(16200).fadeIn(600);
现在我想知道,如何在最后一张图片后运行功能?我不想使用setTimeout。
答案 0 :(得分:1)
fadeIn采用第二个参数“回调” - 请参阅文档:http://api.jquery.com/fadein/
它可以是任何函数,并在动画完成时调用。
在那里传递一个匿名函数。
$(".img6").delay(16200).fadeIn(600, function(){
alert("It's over, it's done!");
});
答案 1 :(得分:0)
fadeIn有一个'完整'回调作为第二个参数。 http://api.jquery.com/fadein/
$(".img1").delay(2500).fadeIn(600);
$(".img2").delay(6200).fadeIn(600);
$(".img3").delay(8700).fadeIn(600);
$(".img4").delay(11200).fadeIn(600);
$(".img5").delay(13700).fadeIn(600);
$(".img6").delay(16200).fadeIn(600, function(){
alert('Hello world!');
});
答案 2 :(得分:0)
fadeIn()
允许您在函数本身完成其工作后运行回调函数,请参阅此处的文档:http://api.jquery.com/fadein/
<强> JS 强>
$("#test").fadeIn(1000, function(){
//--- do whatever you need once the fade in is completed
})
<强> FIDDLE 强>
答案 3 :(得分:0)
你可以看看这个jQuery插件:
http://jquery.offput.ca/timers/
oneTime()
方法允许您在特定秒数后运行代码ONCE。
$('#myelement').oneTime('10s', function() {
// do something after 10s
});
但实际上插件的底层代码使用setTimeout
/ setInterval
。
答案 4 :(得分:0)
在fadeIn之后使用另一个延迟,然后队列传递你的函数
$(".img6").delay(16200).fadeIn(600).delay(100).queue(function(){ alert("");});