js进度条
js页面加载进度条
<!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>页面加载进度条</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标签后面使用本控件*/
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;");
/*更新进度条*/
this.updateProcess = function (percent) {
setTimeout(
setTimeout(function () { $(divTxt).animate({ width: percent + "px" }).text(percent + "%") }, ++count * 500);
if (percent == 100) { /*100%就从页面移除loading标签*/
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标签后面,然后在适当的位置调用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>进度条</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>进度条</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区别
setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() ,setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭,或者让 code 自身再次调用 setTimeout()。