Javascript 停止设置延迟第一次运行超时

Javascript 停止设置延迟第一次运行超时,javascript,jquery,loops,settimeout,Javascript,Jquery,Loops,Settimeout,所以我正在创建一个脚本,在我的网站上添加漂浮在页面上的云。但是,如中所示,第一个云的出现被spawn\u cloud\u循环中的setTimeout延迟(10-12秒)。有没有办法强迫第一个云立即添加而不延迟。我尝试添加add_cloud()在生成云循环()之前但延迟仍然存在。整个项目可以在中找到,云效果的代码位于js/clouds.js Jordan你的clouds.js脚本包含在头部,然后add_cloud()将立即运行。这意味着您创建了一个新的云,并尝试将其附加到“clouds”div中

所以我正在创建一个脚本,在我的网站上添加漂浮在页面上的云。但是,如中所示,第一个云的出现被
spawn\u cloud\u循环中的
setTimeout
延迟(10-12秒)。有没有办法强迫第一个云立即添加而不延迟。我尝试添加
add_cloud()
生成云循环()之前但延迟仍然存在。整个项目可以在中找到,云效果的代码位于
js/clouds.js



Jordan

你的
clouds.js
脚本包含在头部,然后
add_cloud()将立即运行。这意味着您创建了一个新的云,并尝试将其附加到“clouds”div中,该div不存在,因为它尚未被解析。第二个和后续的云被创建为OK,因为
spawn\u cloud\u loop()
函数有很长的延迟,文档已经被then解析

您需要将clouds.js脚本包含内容移动到页面源代码中“clouds”div下面的某个位置,或者将
add_cloud()放在下面的某个位置调用文档就绪处理程序,以便在解析“clouds”div之前不会执行该处理程序:

$(document).ready(function(){
    add_cloud();
    spawn_cloud_loop();
    clean_up();
});
注意:如果在设置超时之前将
spawn\u cloud\u loop()
修改为调用
add\u cloud()
,则不需要初始调用
add\u cloud()

function spawn_cloud_loop () {
    add_cloud();
    setTimeout(spawn_cloud_loop, rand(10000, 12000));
}
(当然,您仍然需要从文档中调用
spawn\u cloud\u loop()

此外,如果在动画结束时立即从完整回调中删除每个云,则根本不需要执行
clean_up()
过程:

cloud.animate({ left: window.screen.width+100 },
              50000,
              'linear',
              function(){ $(this).remove(); });

您的
clouds.js
脚本包含在头部,然后
add_cloud()将立即运行。这意味着您创建了一个新的云,并尝试将其附加到“clouds”div中,该div不存在,因为它尚未被解析。第二个和后续的云被创建为OK,因为
spawn\u cloud\u loop()
函数有很长的延迟,文档已经被then解析

您需要将clouds.js脚本包含内容移动到页面源代码中“clouds”div下面的某个位置,或者将
add_cloud()放在下面的某个位置调用文档就绪处理程序,以便在解析“clouds”div之前不会执行该处理程序:

$(document).ready(function(){
    add_cloud();
    spawn_cloud_loop();
    clean_up();
});
注意:如果在设置超时之前将
spawn\u cloud\u loop()
修改为调用
add\u cloud()
,则不需要初始调用
add\u cloud()

function spawn_cloud_loop () {
    add_cloud();
    setTimeout(spawn_cloud_loop, rand(10000, 12000));
}
(当然,您仍然需要从文档中调用
spawn\u cloud\u loop()

此外,如果在动画结束时立即从完整回调中删除每个云,则根本不需要执行
clean_up()
过程:

cloud.animate({ left: window.screen.width+100 },
              50000,
              'linear',
              function(){ $(this).remove(); });

在中看不到任何云-这只是IE,还是链接错误?无论如何,在这里发布相关代码,我们不能依赖外部源。@ShadowWizard,您必须等待至少10秒,才能获得第一个源,因此OP希望它更快。@ShadowWizard-您是否费心实际阅读此文章。云的出现被延迟(这是整个问题)。这个延迟范围在10到12秒之间。你从来没有说过10秒,我认为它是短延迟。在中看不到任何云-这只是IE,还是错误的链接?无论如何,在这里发布相关代码,我们不能依赖外部源。@ShadowWizard,您必须等待至少10秒,才能获得第一个源,因此OP希望它更快。@ShadowWizard-您是否费心实际阅读此文章。云的出现被延迟(这是整个问题)。这个延迟范围在10到12秒之间。你从来没有说过10秒,我认为它是短延迟。这个工作很好,你解释得很好。谢谢:)还可以做一些改进,这里是-@Jordan FYI。这很好用,你也解释得很好。谢谢:)还可以做一些改进,这里是-@Jordan FYI。。