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 相关文章推荐
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
扩展javascript的Date方法实现代码(prototype)
Nov 20 Javascript
javascript学习笔记(十二) RegExp类型介绍
Jun 20 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
May 23 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
js如何实现淡入淡出效果
Nov 18 Javascript
ashx文件获取$.ajax()方法发送的数据
May 26 Javascript
Vue.js第四天学习笔记(组件)
Dec 02 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
Jan 04 Javascript
JavaScript数据结构中串的表示与应用实例
Apr 12 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
token 机制和实现方式
2020/12/15 Javascript
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
程序员跳槽必看面试题总结
2013/06/28 面试题
烹调加工管理制度
2014/02/04 职场文书
报关专员求职信范文
2014/02/22 职场文书
论文诚信承诺书
2014/05/23 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
法定代表人证明书
2014/11/28 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
大一学生个人总结
2015/02/15 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
详解Python常用的魔法方法
2021/06/03 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers
win11开机发生死循环重启怎么办?win11开机发生死循环重启解决方法
2022/08/05 数码科技
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript