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 imgareaselect 使用利用js与程序结合实现图片剪切
Jul 30 Javascript
js代码实现随机颜色的小方块
Jul 30 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
Aug 21 Javascript
DWR中各种java方法的调用
May 04 Javascript
Jquery-data的三种用法
Apr 18 jQuery
JS中使用textPath实现线条上的文字
Dec 25 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
JavaScript setInterval()与setTimeout()计时器
Dec 27 Javascript
js实现坦克大战游戏
Feb 24 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 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实现Ftp用户的在线管理的代码
2007/03/06 PHP
php下使用iconv需要注意的问题
2010/11/20 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
Javascript alert消息换行的方法
2013/08/07 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
python计算无向图节点度的实例代码
2019/11/22 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
大学生志愿者感言
2014/01/15 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
详解Redis瘦身指南
2021/05/26 Redis
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
基于Python实现股票收益率分析
2022/04/02 Python