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 相关文章推荐
select组合框option的捕捉实例代码
Sep 30 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
Jun 20 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
Jul 17 Javascript
jquery操作select详解(取值,设置选中)
Feb 07 Javascript
jquery中ready()函数执行的时机和window的load事件比较
Jun 22 Javascript
深入理解$.each和$(selector).each
May 15 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
利用jquery实现实时更新歌词的方法
Jan 06 Javascript
Three.js中网格对象MESH的属性与方法详解
Sep 27 Javascript
小程序兼容安卓和IOS数据处理问题及坑
Sep 18 Javascript
vue 更改连接后台的api示例
Nov 11 Javascript
JQuery实现折叠式菜单的详细代码
Jun 03 jQuery
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常用技巧总结(附函数代码)
2012/02/04 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
Python中用format函数格式化字符串的用法
2015/04/08 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
Python 3.8 新功能全解
2019/07/25 Python
python join方法使用详解
2019/07/30 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
长辈证婚人证婚词
2014/01/09 职场文书
打架检讨书400字
2014/01/17 职场文书
小组合作学习反思
2014/02/18 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
小学运动会宣传稿
2015/07/23 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
ipad隐藏软件app图标方法
2022/04/19 数码科技