javascript实现简单的进度条


Posted in Javascript onJuly 02, 2015

示例一:

<!doctype html>
<html>
<head>
<meta charset="utf8">
<title>Process Bar</title>
<script>
var t;

function s(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;
  }
}

function c()
{
  clearTimeout(t);
  val.style.width="0px";
  percent.innerHTML="0%";
  btn.disabled=false;
  btnc.disabled=true;
  btnp.disabled=true;
  btnp.value='Pause';
}

function p()
{
  var temp;
  if('Pause' == btnp.value)
  {
    clearTimeout(t);
    btnp.value='Go on';
    btnc.disabled=false;
  }
  else
  {
    temp=val.style.width;
    btnp.value='Pause';
    var k=parseInt(delEnd(temp));
    s(k);
    btnc.disabled=true;
  }  
}

function delEnd(str)
{
  var temp="";
  for(var i=0; i < str.length-1; i++)

  {
    temp=temp+str[i];
  }

  return temp;

}
</script>
</head>

<body>
<div id="bar" style="width:300px; height:30px; border:solid 1px; float:left;">
 <div id="val" style="height:100%; background-color:#03F; width:0px;"></div>
</div>
<div id="percent" style="float:left; line-height:30px;">0%</div>
<div style="clear:both"></div>
<br />
<input id="btn" type="button" value="Start" onClick="s(0)" />
<br />
<input id="btnc" type="button" value="Clear" onClick="c()" disabled />
<br />
<input id="btnp" type="button" value="Pause" onClick="p()" disabled />
</body>
</html>

再来分享一个结合.net的

建立一个WEB工程,添加新项->HTML页面,命名为ProgressBar.htm,内容如下:

<!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" id="mainWindow">
<head>
  <title>无标题页</title>
  <script language="javascript">
    function SetPorgressBar(pos)
    {
      //设置进度条居中
      var screenHeight = window["mainWindow"].offsetHeight;
      var screenWidth = 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 + "%";
    }

    //完成后隐藏进度条
    function SetCompleted()
    {    
      ProgressBarSide.style.display = "none";
    }
   </script> 
</head>
  <body>
  <div id="ProgressBarSide" style="position:absolute;height:21x;width:100px;color:Silver;border-width:1px;border-style:Solid;display:none">
    <div id="ProgressBar" style="position:absolute;height:21px;width:0%;background-color:#3366FF"></div>
    <div id="ProgressText" style="position:absolute;height:21px;width:100%;text-align:center"></div>
  </div>
  </body>
</html>

后台代码,Default.aspx.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Threading;
using System.IO;

public partial class _Default : System.Web.UI.Page 
{
  private void beginProgress()
  {
    //根据ProgressBar.htm显示进度条界面
    string templateFileName = Path.Combine(Server.MapPath("."), "ProgressBar.htm");
    StreamReader reader = new StreamReader(@templateFileName,System.Text.Encoding.GetEncoding("GB2312"));
    string html = reader.ReadToEnd();
    reader.Close();
    Response.Write(html);
    Response.Flush();
  }

  private void setProgress(int percent)
  {
    string jsBlock = "<script>SetPorgressBar('" + percent.ToString() + "'); </script>";
    Response.Write(jsBlock);
    Response.Flush();
  }

  private void finishProgress()
  {
    string jsBlock = "<script>SetCompleted();</script>";
    Response.Write(jsBlock);
    Response.Flush();
  }

  private void Page_Load(object sender, System.EventArgs e) 
  {
    beginProgress();

    for (int i = 1; i <= 100; i++)
    {
      setProgress(i);

      //此处用线程休眠代替实际的操作,如加载数据等
      System.Threading.Thread.Sleep(50);
    }

    finishProgress(); 
  } 
}
Javascript 相关文章推荐
jQuery 计算iframe 窗口大小的方法
May 13 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Jun 05 Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 Javascript
JS实现从连接中获取youtube的key实例
Jul 02 Javascript
JavaScript学习笔记之ES6数组方法
Mar 25 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
Nov 24 Javascript
微信小程序 五星评价功能的实现
Mar 09 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
Aug 02 Javascript
小程序清理本地缓存的方法
Aug 17 Javascript
Electron + vue 打包桌面操作流程详解
Jun 24 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 Javascript
JS使用setInterval计时器实现挑战10秒
Nov 08 Javascript
JavaScript实现添加、查找、删除元素
Jul 02 #Javascript
超级给力的JavaScript的React框架入门教程
Jul 02 #Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
Jul 02 #Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 #Javascript
JavaScript实现动态添加,删除行的方法实例详解
Jul 02 #Javascript
javascript获取select值的方法分析
Jul 02 #Javascript
JavaScript获取并更改input标签name属性的方法
Jul 02 #Javascript
You might like
PHP导入Excel到MySQL的方法
2011/04/23 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
PHP实现抓取迅雷VIP账号的方法
2015/07/30 PHP
万能的php分页类
2017/07/06 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
webpack打包js的方法
2018/03/12 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
Python 列表list使用介绍
2014/11/30 Python
python将ip地址转换成整数的方法
2015/03/17 Python
Python二分查找详解
2015/09/13 Python
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
python sorted方法和列表使用解析
2019/11/18 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
个人求职简历的自我评价
2013/10/19 职场文书
三年级语文教学反思
2014/02/01 职场文书
学校食堂标语
2014/10/06 职场文书
党员证明模板
2015/06/19 职场文书