javascript实现简单的进度条
示例一:
<!doctypehtml>
<html>
<head>
<metacharset="utf8">
<title>ProcessBar</title>
<script>
vart;
functions(c)
{
if(c<=100)
{
val.style.width=c+"%";
percent.innerHTML=c+"%";
btn.disabled=true;
btnp.disabled=false;
c=c+10;
t=setTimeout("s("+c+")",500);
}
else
{
clearTimeout(t);
btnc.disabled=false;
btnp.disabled=true;
return;
}
}
functionc()
{
clearTimeout(t);
val.style.width="0px";
percent.innerHTML="0%";
btn.disabled=false;
btnc.disabled=true;
btnp.disabled=true;
btnp.value='Pause';
}
functionp()
{
vartemp;
if('Pause'==btnp.value)
{
clearTimeout(t);
btnp.value='Goon';
btnc.disabled=false;
}
else
{
temp=val.style.width;
btnp.value='Pause';
vark=parseInt(delEnd(temp));
s(k);
btnc.disabled=true;
}
}
functiondelEnd(str)
{
vartemp="";
for(vari=0;i<str.length-1;i++)
{
temp=temp+str[i];
}
returntemp;
}
</script>
</head>
<body>
<divid="bar"style="width:300px;height:30px;border:solid1px;float:left;">
<divid="val"style="height:100%;background-color:#03F;width:0px;"></div>
</div>
<divid="percent"style="float:left;line-height:30px;">0%</div>
<divstyle="clear:both"></div>
<br/>
<inputid="btn"type="button"value="Start"onClick="s(0)"/>
<br/>
<inputid="btnc"type="button"value="Clear"onClick="c()"disabled/>
<br/>
<inputid="btnp"type="button"value="Pause"onClick="p()"disabled/>
</body>
</html>
再来分享一个结合.net的
建立一个WEB工程,添加新项->HTML页面,命名为ProgressBar.htm,内容如下:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"id="mainWindow">
<head>
<title>无标题页</title>
<scriptlanguage="javascript">
functionSetPorgressBar(pos)
{
//设置进度条居中
varscreenHeight=window["mainWindow"].offsetHeight;
varscreenWidth=window["mainWindow"].offsetWidth;
ProgressBarSide.style.width=Math.round(screenWidth/2);
ProgressBarSide.style.left=Math.round(screenWidth/4);
ProgressBarSide.style.top=Math.round(screenHeight/2);
ProgressBarSide.style.height="21px";
ProgressBarSide.style.display="";
//设置进度条百分比
ProgressBar.style.width=pos+"%";
ProgressText.innerHTML=pos+"%";
}
//完成后隐藏进度条
functionSetCompleted()
{
ProgressBarSide.style.display="none";
}
</script>
</head>
<body>
<divid="ProgressBarSide"style="position:absolute;height:21x;width:100px;color:Silver;border-width:1px;border-style:Solid;display:none">
<divid="ProgressBar"style="position:absolute;height:21px;width:0%;background-color:#3366FF"></div>
<divid="ProgressText"style="position:absolute;height:21px;width:100%;text-align:center"></div>
</div>
</body>
</html>
后台代码,Default.aspx.cs:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Threading;
usingSystem.IO;
publicpartialclass_Default:System.Web.UI.Page
{
privatevoidbeginProgress()
{
//根据ProgressBar.htm显示进度条界面
stringtemplateFileName=Path.Combine(Server.MapPath("."),"ProgressBar.htm");
StreamReaderreader=newStreamReader(@templateFileName,System.Text.Encoding.GetEncoding("GB2312"));
stringhtml=reader.ReadToEnd();
reader.Close();
Response.Write(html);
Response.Flush();
}
privatevoidsetProgress(intpercent)
{
stringjsBlock="<script>SetPorgressBar('"+percent.ToString()+"');</script>";
Response.Write(jsBlock);
Response.Flush();
}
privatevoidfinishProgress()
{
stringjsBlock="<script>SetCompleted();</script>";
Response.Write(jsBlock);
Response.Flush();
}
privatevoidPage_Load(objectsender,System.EventArgse)
{
beginProgress();
for(inti=1;i<=100;i++)
{
setProgress(i);
//此处用线程休眠代替实际的操作,如加载数据等
System.Threading.Thread.Sleep(50);
}
finishProgress();
}
}