2013-12-16 106 views
0

有什麼辦法可以強制瀏覽器在顯示任何內容之前等待頁面下載?首先下載頁面,然後顯示/動畫內容

我有一個網頁上有多個動畫。第一次加載時,動畫不穩定,看起來令人難以置信的錯誤,因爲他們正在動畫的內容仍在下載。我需要先下載所有內容,然後才能順利執行動畫。這可能嗎?

動畫是CSS3動畫。

感謝

+0

有你連接那些嘗試.load()事件。 –

+0

什麼是動畫?閃? GIF? – Halcyon

+0

你試過$(window).load()方法嗎? –

回答

1
$(window).on('load', function() { 
    // do stuff 
}); 

將等待頁面和外部資源,如圖像發射之前加載。

如果動畫是CSS動畫,使用類或其他選擇,當窗口已經加載到啓動動畫

$(window).on('load', function() { 
    $('.animated').addClass('start'); 
}); 

和CSS

.animated { 
    -webkit-transition: all 0.3s ease-out; 
    -moz-transition: all 0.3s ease-out; 
     -o-transition: all 0.3s ease-out; 
      transition: all 0.3s ease-out; 
} 

.start { 
    color: red; 
    left: 100px; 
    /* whatever you'd like to animate */ 
} 
+0

這個答案很有用。我想補充一點,也許'$(window).on('load''不是開始的正確時間,你可能會提前開始或者可能要等一段時間,這取決於發生了多少事情。加速'load'事件的一個好方法是延遲加載不需要立即需要的資源(如離開屏幕的東西)。 – Halcyon

+1

@FritsvanCampen - 這是事實,根據網站的不同,可能會有有很多方法可以做到這一點,所以添加到答案中有點麻煩,但是如果加載圖像等不是問題,那麼document.ready可能是開始動畫的更好時機,並且如果有其他資源沒有加載window.onload,也許這些資源上的加載事件處理程序將是必要的等等。這應該至少提供瞭如何使用不同的選擇器用JavaScript激發CSS動畫的想法。 – adeneo

0
$(window).load(function() { 
    /* here you can use some "addClass" functions. Once added they trigger your CSS animations */ 
}); 
+0

設置一些類專用於動畫並將它們添加到您的代碼中所以他們只有在所有其他東西都加載時纔開始。 –

相關問題