2010-09-10 57 views
3

我想爲我的網站創建預加載器的印象。 我有<div class="loading">應該淡入淡出,直到<div id=page-wrap>的內容被加載。jQuery:動畫元素直到頁面加載

現在,我使用的是基於時間的解決方案來猜測,但當然是不準確的:

<script type="text/javascript"> 
// fade site in when loaded 
$("#page-wrap").css("display", "none"); 
$(window).bind("load",function(){ 
    $("#page-wrap").fadeIn(2000); 
}); 

// blink markers 
$(".loading").hide(); 
$(".loading").fadeIn(200).fadeOut(200).fadeIn(200).fadeOut(200).fadeIn(200).fadeOut(200).fadeIn(200).fadeOut(200).fadeIn(200).fadeOut(200).fadeIn(200); 
</script> 

我怎樣才能讓這個更復雜,更實際的淡入/淡出結合頁面加載?

回答

4

奇數設置的一點,但什麼是地獄:)

嘗試是這樣的:

<script type="text/javascript"> 
    $("#page-wrap, .loading").hide(); 
    $(window).load(function(){ 
    $(".loading").stop(true, true).hide(); 
    $("#page-wrap").fadeIn(2000); 
    }); 
    function fadeLoop() { 
    $(".loading").fadeIn(200).fadeOut(200, fadeLoop) 
    } 
    fadeLoop(); 
</script> 

這不會褪色循環重複,直到停止,該.stop()會做,調用fadeLoop回調,並停止循環。

+0

謝謝尼克。我注意到,在第一次加載時,'.loading' div仍然隱藏,如果我刷新它們顯示的頁面,但是「stop()」不生效。很奇怪。那裏有任何想法? – thv20 2010-09-10 21:41:05

+1

@ thv20 - 這很奇怪,你沒有在'document.ready'裏面運行這個東西嗎?並且是在此腳本塊之前聲明的'.loading'元素? – 2010-09-10 23:06:02

+0

沒有評論意味着他可能是。美麗的答案Craver先生,你總是給出最好的答案。 – 2011-08-04 11:28:40

相關問題