爲什麼不做這樣的事情?只需將其更改爲AJAX,並使用success
作爲觸發器。基本上是一個永無休止的動畫GIF,同時等待你加載數據。
<div id="chartDiv"></div>
var chartDiv = document.getElementById("chartDiv");
var loadingImg = document.createElement("img");
var newImg = document.createElement("img");
loadingImg.src = "http://i1267.photobucket.com/albums/jj559/rizkytanjo96/loading.gif";
chartDiv.appendChild(loadingImg);
function placeLoaded() {
chartDiv.removeChild(loadingImg);
chartDiv.appendChild(newImg);
}
function getNew() {
newImg.addEventListener("load", placeLoaded, false);
newImg.src = "http://i1276.photobucket.com/albums/y462/staffpicks/Animated_GIFs/ahhhh.gif";
}
setTimeout(getNew, 10000);
上jsfiddle
或者,如果你不想一個GIF動畫,你可以做這樣的事情與JavaScript。
#pwidget {
background-color:lightgray;
width:254px;
padding:2px;
-moz-border-radius:3px;
border-radius:3px;
text-align:left;
border:1px solid gray;
}
#progressbar {
width:250px;
padding:1px;
background-color:white;
border:1px solid black;
height:28px;
}
#indicator {
width:0px;
background-image:url("http://img827.imageshack.us/img827/269/shadedgreen.png");
height:28px;
margin:0;
}
#loading {
text-align:center;
width:250px;
}
var pwidget = {
maxprogress: 250,
actualprogress: 0,
itv: 0,
delay: 10,
prog: function() {
if (pwidget.actualprogress >= pwidget.maxprogress) {
clearInterval(pwidget.itv);
return;
}
var indicator = document.getElementById("indicator");
pwidget.actualprogress += 1;
indicator.style.width = pwidget.actualprogress + "px";
if (pwidget.actualprogress === pwidget.maxprogress) {
pwidget.restart();
}
},
start: function() {
pwidget.itv = setInterval(pwidget.prog, pwidget.delay);
},
stop: function() {
clearInterval(pwidget.itv);
},
restart: function() {
pwidget.actualprogress = 0;
pwidget.stop();
pwidget.start();
},
element: function() {
var pwidget = document.createElement("div"),
progressbar = document.createElement("div"),
indicator = document.createElement("div"),
loading = document.createElement("div");
pwidget.id = "pwidget";
progressbar.id = "progressbar";
indicator.id = "indicator";
loading.id = "loading";
loading.textContent = "Loading ...";
progressbar.appendChild(indicator);
pwidget.appendChild(progressbar);
pwidget.appendChild(loading);
return pwidget;
}
};
var chartDiv = document.getElementById("chartDiv");
var widget = pwidget.element();
var newImg = document.createElement("img");
function placeLoaded() {
pwidget.stop();
chartDiv.removeChild(widget);
chartDiv.appendChild(newImg);
}
function getNew() {
newImg.addEventListener("load", placeLoaded, false);
newImg.src = "http://i1276.photobucket.com/albums/y462/staffpicks/Animated_GIFs/ahhhh.gif";
}
chartDiv.appendChild(widget);
pwidget.start();
setTimeout(getNew, 10000);
上jsfiddle
或者jQueryUI has a progress bar,你可以做類似的事情我上面的例子。
謝謝!非常有用,這是完美的,有多少幀是我的最佳選擇低gif加載...我可以建立一個自定義的,所以如果你有anyidea這將是很高興知道。順便裝載後的面孔是最好的部分jajaja:D很好。 – 2013-04-24 14:55:44
男人,但又有一個計時器的代碼,所以如果我把一秒鐘,它會等待一秒鐘之前顯示,即使在網上還有加載元件-..... :(點是一切都加載在我顯示頁面之前!!如果沒有,加載的點是什麼....我需要一些東西來檢查是否有東西在加載,只是當它加載它可以顯示頁面。 – 2013-04-24 15:09:33
這正是「加載「事件,只有當某些東西已經完成加載時纔會觸發,所以我不確定你在做什麼。我的第二個例子中的定時器/延遲只是增加了綠色條,以便感受一些事情的發生,將其設置爲1毫秒(現在爲10毫秒)或者你想要的值,然後改變步驟數量,如果你想要更快的填充。 – Xotic750 2013-04-24 15:23:26