用htc实现进度条控件
作者:
用htc实现进度条控件
复制代码 代码如下:
<PUBLIC:COMPONENT>
<PUBLIC:METHOD NAME ="Init" INTERNALNAME ="fnCreateProgressBar" />
<PUBLIC:METHOD NAME ="showProgress" INTERNALNAME ="showProgress" />
<PUBLIC:PROPERTY NAME="Container"/>
<PUBLIC:PROPERTY NAME="Speed"/>
<SCRIPT LANGUAGE=javascript>
var startTime = null ;
function fnCreateProgressBar(){
now = new Date();
startTime = now.getTime();
now = null
oContainer = element.Container
oContainer.innerHTML = "";
oDiv = window.document.createElement("DIV")
oDiv.className = "progress"
oContainer.appendChild(oDiv)
oDiv.style.display = "";
element.bar = oDiv;
}
function pause(numberMillis) {
var dialogScript =
'window.setTimeout(' +
' function () { window.close(); }, ' + numberMillis + ');';
var result =
window.showModalDialog(
'javascript:document.writeln(' +
'"<script>' + dialogScript + '<' + '/script>")');
}
function showProgress(StatesDesc){
now = new Date();
currTime = now.getTime();
now = null
if(StatesDesc!=null) window.status = StatesDesc+"当前耗时:"+(currTime - startTime)+"毫秒!";
element.bar.style.width = (currTime - startTime) / element.Speed;
pause(1)
}
</script>
</PUBLIC:COMPONENT>
应用例子:
复制代码 代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>进度条测试</title>
<link rel="stylesheet" type="text/css" href="ProgressBar.css">
<script>
function Demo(){
PrgBar.Container = document.all.layer1
PrgBar.Init();
for(var i=0;i<500;i++){
if(i%5==0) PrgBar.showProgress("操作进行中......")
}
PrgBar.showProgress("操作完成!")
}
</script>
</head>
<body>
<div style="position: absolute; width: 612px; height: 19px; z-index: 1; left: 10px; top: 72px; border-style: solid; border-width: 1px; padding-left: 4px; padding-right: 4px; padding-top: 1px; padding-bottom: 1px" id="layer1"></div>
<p><input type="button" value="测试" name="B3" onclick="Demo()"></p>
<Progressbar id="PrgBar" class="ProgressBar" Speed="10"/>
</body>
</html>
样式文件:ProgressBar.css
复制代码 代码如下:
.ProgressBar
{
BEHAVIOR: url("ProgressBar.htc")
}
.progress{
position: relative;
width: 0px;
height: 20px;
z-index: 1;
background-color: #006699;
filter:progid:DXImageTransform.Microsoft.gradient(startcolorstr=#006699,endcolorstr=#E3EFFF,gradientType=0);
border: 1px ridge #C0C0C0;
}