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 相关文章推荐
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
Feb 24 Javascript
yepnope.js 异步加载资源文件
Sep 08 Javascript
Prototype的Class.create函数解析
Sep 22 Javascript
node.js中的fs.existsSync方法使用说明
Dec 17 Javascript
jQuery入门介绍之基础知识
Jan 13 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
asp知识整理笔记3(问答模式)
Sep 27 Javascript
Javascript刷新窗口方法小结
Oct 21 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 jQuery
Vue render深入开发讲解
Apr 13 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 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
检测png图片是否完整的php代码
2010/09/06 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
js模拟滚动条(横向竖向)
2013/02/22 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
微信小程序实现侧边栏分类
2019/10/21 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
对python中的logger模块全面讲解
2018/04/28 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
python如何制作缩略图
2019/04/30 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
教学器材管理制度
2014/01/26 职场文书
班班通校本培训方案
2014/03/12 职场文书
婚前协议书范本
2014/04/15 职场文书
爱耳日活动总结
2014/04/30 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
初一语文教学反思
2016/03/03 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers