js頁面加載進(jìn)度條
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>頁面加載進(jìn)度條</title>
<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
var etControl = {};
etControl.process
etControl.process = function (config) {
/*需要放在html中的body標(biāo)簽后面使用本控件*/
var count = 0;
var id = "loading";
var el = "#" + id;
$(
$("body").append('<div id="' + id + '"></div>');
var divTxt = "#" + id + " div";
$(el).html(
$(el).html("<div></div>");
$(el).attr(
$(el).attr("style", "width: 100px;height: 12px;background: #A0DB0E;padding: 5px;position: fixed;left: 0;top: 0;font-size:12px;");
$(divTxt).attr(
$(divTxt).attr("style", "width: 1px;height: 12px;background: #F1FF4D;");
/*更新進(jìn)度條*/
this.updateProcess = function (percent) {
setTimeout(
setTimeout(function () { $(divTxt).animate({ width: percent + "px" }).text(percent + "%") }, ++count * 500);
if (percent == 100) { /*100%就從頁面移除loading標(biāo)簽*/
setTimeout(function () {
$(el).hide(
$(el).hide(500);
setTimeout(
setTimeout(function () { $(el).remove() }, 500);
}, count
}, count * 500 + 800);
}
};
}
}
};
}
</script>
</head>
<body>
</body>
<script type="text/javascript">
/*需要放在body標(biāo)簽后面,然后在適當(dāng)?shù)奈恢谜{(diào)用updateProcess方法*/
var p = new etControl.process();
p.updateProcess(
p.updateProcess(34);
p.updateProcess(
p.updateProcess(57);
p.updateProcess(
p.updateProcess(62);
p.updateProcess(
p.updateProcess(90);
p.updateProcess(
p.updateProcess(100);
</script>
</html>
1.setTimeout和clearTimeout
<html>
<head>
<title>進(jìn)度條</title>
<style type="text/css">
.container{
width:450px;
border:1px solid #6C9C2C;
height:25px;
}
#bar{
background:#95CA0D;
float:left;
height:100%;
text-align:center;
line-height:150%;
}
</style>
<script type="text/javascript">
function run(){
var bar = document.getElementById("bar");
var total = document.getElementById("total");
bar.style.width=parseInt(bar.style.width) + 1 + "%";
total.innerHTML = bar.style.width;
if(bar.style.width == "100%"){
window.clearTimeout(timeout);
return;
}
var timeout=window.setTimeout("run()",100);
}
window.onload = function(){
run();
}
</script>
</head>
<body>
<div class="container">
<div id="bar" style="width:0%;"></div>
</div>
<span id="total"></span>
</body>
</html>
效果圖:
2.setInterval和clearInterval
<html>
<head>
<title>進(jìn)度條</title>
<style type="text/css">
.processcontainer{
width:450px;
border:1px solid #6C9C2C;
height:25px;
}
#processbar{
background:#95CA0D;
float:left;
height:100%;
text-align:center;
line-height:150%;
}
</style>
<script type="text/javascript">
function setProcess(){
var processbar = document.getElementById("processbar");
processbar.style.width = parseInt(processbar.style.width) + 1 + "%";
processbar.innerHTML = processbar.style.width;
if(processbar.style.width == "100%"){
window.clearInterval(bartimer);
}
}
var bartimer = window.setInterval(function(){setProcess();},100);
window.onload = function(){
bartimer;
}
</script>
</head>
<body>
<div class="processcontainer">
<div id="processbar" style="width:0%;"></div>
</div>
</body>
</html>
效果圖:
3.setTimeout和setInterval區(qū)別
setTimeout() 只執(zhí)行 code 一次。如果要多次調(diào)用,請使用 setInterval() ,setInterval() 方法會不停地調(diào)用函數(shù),直到 clearInterval() 被調(diào)用或窗口被關(guān)閉,或者讓 code 自身再次調(diào)用 setTimeout()。
更多建議: