你clouds.js
腳本包含在頭上,然後add_cloud();
立即運行。這意味着你創建一個新的雲,並試圖將它附加到「雲」div,因爲它尚未被解析,所以它不存在。因爲spawn_cloud_loop()
函數具有如此長的延遲,所以第二個和隨後的雲被創建爲OK,因此該文檔已被當時解析。
您需要將clouds.js腳本包含在頁面源代碼中「clouds」div下方的某個位置,或將add_cloud();
調用放入文檔就緒處理程序中,以便在「雲」 DIV已經被解析:
$(document).ready(function(){
add_cloud();
spawn_cloud_loop();
clean_up();
});
注意:你不會需要add_cloud()
初始呼叫,如果你修改了spawn_cloud_loop()
設置超時之前調用add_cloud()
:
function spawn_cloud_loop() {
add_cloud();
setTimeout(spawn_cloud_loop, rand(10000, 12000));
}
(當然,你仍舊需要調用spawn_cloud_loop()
從準備的文件。)
另外,如果你立即在動畫的最後從jQuery .animate()
method's完全刪除每個雲你不會需要一個過程clean_up()
在所有回調:
cloud.animate({ left: window.screen.width+100 },
50000,
'linear',
function(){ $(this).remove(); });
在[你的例子](http://jordanadams.github.com/)中看不到任何雲 - 這是隻有IE瀏覽器還是錯誤的鏈接?無論如何,在這裏**相關代碼**我們不能指望外部來源。 – 2012-01-05 12:23:25
@ShadowWizard,你將不得不等待至少10秒,因此OP要更快。 – medopal 2012-01-05 12:30:33
@ShadowWizard - 你是否真的讀過帖子。雲的外觀被延遲了(這是整個問題)。這個延遲範圍在10到12秒之間。 – 2012-01-05 12:31:45