我有这段代码:
$("#comingsoon, #1, #2, #3").hide().each(function(i) {
$(this).delay(i * 500).slideDown(1500);
});
这基本上在我的页面上的一系列对象中消失,问题是当页面顶部的flash横幅加载时动画可怕地滞后。我想将整个jQuery动画延迟大约2-3秒。
任何人都有任何想法。
答案 0 :(得分:2)
由于您已经在使用delay
,因此您只需在当前变量间隔中添加固定间隔:
$("#comingsoon, #1, #2, #3").hide().each(function(i) {
$(this).delay(2500 + i*500).slideDown(1500);
});
(2500在slideDowns开始之前增加了2.5秒的延迟。)
如果您想延迟隐藏,请将您的整个内容置于延迟函数中:
setTimeout(function() {
$("#comingsoon, #1, #2, #3").hide().each(function(i) {
$(this).delay(i*500).slideDown(1500);
});
}, 2500);
在代码运行2.5秒后,甚至不会隐藏任何内容。
See also John Gietzen's answer:如果您要等到所有网页内容都已加载(可能需要很长时间,但可能正是您想要的内容),请使用window
load
事件而不是jQuery.ready
。
答案 1 :(得分:2)
我假设您使用$(document).ready()
来解雇您的代码。
如果您想等到DOM 和所有页面内容已加载,您可以使用$(document).bind("onload", ...);
。
答案 2 :(得分:1)
$(window).load(function () {
$("#comingsoon, #1, #2, #3").hide().each(function(i) {
$(this).delay(i*500).slideDown(1500);
});
});
答案 3 :(得分:0)
您总是可以使用setTimeout()函数。
setTimeout( function() {
$("#comingsoon, #1, #2, #3").hide().each(function(i) {
$(this).delay(i*500).slideDown(1500);
});
}, 3000);