2013-11-28 52 views
0

我曾嘗試以下:頁面加載後5秒後加載JavaScript?

<body id="myBody" onload = "setTimeout('a()', 5000)"/> 

這是正確的方法?我之所以要這樣做是因爲我的整個網站在頁面加載時都會進行動畫處理(如淡入淡出)。擁有我的JavaScript只會讓動畫變得不那麼光鮮。

任何反饋意見。

+0

您可以發佈代碼的jsfiddle嗎? – FluffyJack

回答

1
window.addEventListener("load", function() { 
    animation(); 
    setTimeout(otherOperation, 5000); 
}, false); 

function animation() {} 
function otherOperation() {} 

也許如果你正在使用jQuery的動畫有所回調,您可以使用延遲所有其他JavaScript事件的觸發,你可以使用這樣的代碼

+0

所以如果我複製此代碼並將其添加到我的文檔頭部內的腳本標記中,它會正常工作嗎? –

1

<body id="myBody" onload = "setTimeout(a, 5000)">
試試這個

+0

簡單而有效,不知道爲什麼還沒有被選爲頂級。 – Mwspencer

0

像這樣:

$(window).on('load', function() { 

    $('.someElements').animate({ 

     // properties to animate 
    }, 300, function() { 

     initScripts(); 
    }); 
}); 

function initScripts() { 
    // call all other functions here 
} 
+0

我使用CSS動畫,但jquery的其他動畫,我想在我的頁面淡入後5秒鐘發射。 –

0

瀏覽器始終加載所有腳本(如果有的話)當您打開網頁時。所以這取決於你何時調用你的javascript函數。 試試這個:

document.ready(function(){ 
// your code 
}); 
or 
$(function(){ 
    // your code 
}); 

他們都確保所有網頁上的元素都被裝入。

1

此代碼將工作。只需以毫秒爲單位設置時間並在loadAfterTime函數中寫入您的JS代碼:

<script> 
window.onload = function(){ 
    setTimeout(loadAfterTime, 5000) 
}; 


function loadAfterTime() { 
// code you need to execute goes here. 
} 
</script>