2010-04-27 72 views
4

我已經創建了一個使用Jquery UI進度條加載進度條的網站。此進度條顯示腳本加載的狀態。樣本是

$.getScript('_int/ajax.js',function() { 
    $("#progressinfo").html("Loading Complete ..."); 
    $("#progressbar").progressbar({ value: 100 }); 
}); 

這個進度條是#indexloader這是阻止網站加載的背後,它的CSS是:進度條達到100%

#indexloader { 
    z-index:100; 
    position:fixed; 
    top:0; 
    left:0; 
    background:#FFF; 
    width:100%;height:100%; 
} 

後,我想隱藏和刪除#indexloader因爲我用

$("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); }); 

但問題是,雖然腳本已加載,頁面未完全加載,我看到IM年齡和其他事情仍然在加載。

因此衰落和刪除我要檢查是否$(window).load()已完成#indexloader或不

有沒有一種方法來檢查這之前?

回答

9

添加屬性到window

$(window).load(function() { 
    window.loaded = true; 
}); 

然後在您隱藏#indexloader之前檢查window.loaded

+0

好吧,現在我明白了,謝謝兄弟,你搖滾 – Starx 2010-04-27 01:23:36

+0

完美無瑕!謝謝! – 2012-08-29 18:12:21

1

是淡出對window.load選項裝載機?似乎是最簡單的方法做你想要的:

$(window).load(function() { 
    $("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); }); 
}); 

另外,在window.load設置一個變量,像這樣:

var loaded = false; 
$(window).load(function() { loaded = true; }); 

然後改變你的淡出代碼尋找它:

function fadeIndex() { 
    $("#indexloader").fadeOut("slow",function() { $("#indexloader").remove(); }); 
} 
if (loaded) fadeIndex(); //aleady loaded 
else $(window).load(fadeIndex); //fade when we do load 
+0

你們兩個人在同一時間*完全*地回答。我準備了幾乎完整的答案,實際上大約0.5秒太慢了。做的好各位。瞬間!和兩者都+1。 – karim79 2010-04-27 00:25:05

+0

@ karim - 和藹!我今天很slowwww,自己也打了10次左右 – 2010-04-27 00:26:37

+0

你是對的, $(window).load(function(){ $(「#indexloader」)。fadeOut(「slow」,function (){$(「#indexloader」)。remove();}); }); 會更容易些,但我想我的褪色進度條達到100後,在這種情況下,$(「#indexloader」)開始褪色進度達到100 – Starx 2010-04-27 01:21:30

相關問題