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 相关文章推荐
弹出广告特效代码(一个IP只弹出一次)
May 11 Javascript
Javascript面向对象编程
Mar 18 Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
Jun 03 Javascript
利用JavaScript判断浏览器类型及版本
Aug 23 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
基于JavaScript实现的快速排序算法分析
Apr 14 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
Jul 20 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
Oct 11 Javascript
VUE.CLI4.0配置多页面入口的实现
Nov 25 Javascript
解决js中的setInterval清空定时器不管用问题
Nov 17 Javascript
用webAPI实现图片放大镜效果
Nov 23 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中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
PHP 配置后台登录以及模板引入
2017/01/24 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
a标签调用js的方法总结
2019/09/05 Javascript
python创建和使用字典实例详解
2013/11/01 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
python书籍信息爬虫实例
2018/03/19 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
文明餐桌活动方案
2014/02/11 职场文书
司机检讨书
2014/02/13 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
大学推普周活动总结
2015/05/07 职场文书
朋友聚会开场白
2015/06/01 职场文书
欠条范文
2015/07/03 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
Vue监视数据的原理详解
2022/02/24 Vue.js