为了演示方便,在第一个例子中,我们通过javascript去控制时间从而不断地更新进度,并且允许用户通过点击按钮开始进度条的更新,一旦进度条开始更新,则按钮变得不可点击。如果进度条完成的话,则又可以点击按钮,整个进度条在firefox的效果如下图:
下面我们开始一步步实做这个效果:
1)创建html5 页
首先创建基本的html 5基本框架页
- >
- <html>
- <head>
- <script type="text/javascript">
-
- script>
- head>
- <body>
-
- body>
- html>
2) 增加进度条标签
首先,在body部分,添加如下的进度条的标签:
- <p>task progress:p>
- progress id="prog" value="0" max="100">progress>
html 5中的进度条使用的是
3) 点击按钮的编写
现在,我们开始编写点击按钮的事件,代码如下:
- <input id="startbtn" type="button" value="start" onclick="startprogress()"/>
- <div id="numvalue">0%div>
其中startprocess()的代码如下:
-
- var currprogress = 0;
-
- var done = false;
-
- var total = 100;
在声明了上面的变量后,就可以编写startprogress()方法了,代码如下:
- function startprogress() {
-
-
- var prbar = document.getelementbyid("prog");
-
- var startbutt = document.getelementbyid("startbtn");
-
- var val = document.getelementbyid("numvalue");
- }
接下来,当用户点了开始按钮后,需要将按钮设置为不可用,并且要更新进度条的数值:
- startbutt.disabled=true;
-
- prbar.value = currprogress;
并且要显示出进度条当前完成的百分比并显示出来,使用如下的代码:
- val.innerhtml =math.round((currprogress/total)*100) "%";
接着就可以对进度条的数字进行累加了:
- currprogress ;
并且要判断如果进度数值达到100的话,则停止,设置done=false的标识,否则每0.1秒通过javascript的setimeout方法进行延时,如下:
- if(currprogress>100) done=true;
-
- if(!done)
- settimeout("startprogress()", 100);
-
-
- else
- {
- document.getelementbyid("startbtn").disabled = false;
- done = false;
- currprogress = 0;
- }
最后完成的代码如下:
- >
- <html>
- <head>
- <title>developer drive | displaying the progress of tasks with html5 | demotitle>
- <script type="text/javascript">
- var currprogress = 0;
- var done = false;
- var total = 100;
-
- function startprogress() {
- var prbar = document.getelementbyid("prog");
- var startbutt = document.getelementbyid("startbtn");
- var val = document.getelementbyid("numvalue");
- startbutt.disabled=true;
- prbar.value = currprogress;
- val.innerhtml = math.round((currprogress/total)*100) "%";
-
- currprogress ;
- if(currprogress>100) done=true;
- if(!done)
- settimeout("startprogress()", 100);
- else
- {
- document.getelementbyid("startbtn").disabled = false;
- done = false;
- currprogress = 0;
- }
- }
- script>
- head>
- <body>
-
- <p>this is a demo to accompany the following tutorial: <a href="http://www.developerdrive.com/2012/07/displaying-the-progress-of-tasks-with-html5">displaying the progress of tasks with html5a>p><hr/>
-
- <p>task progress:p>
- <progress id="prog" value="0" max="100">progress>
- <input id="startbtn" type="button" value="start" onclick="startprogress()"/>
- <div id="numvalue">0%div>
-
- body>
- html>
来自:51cto
阅读(1793) | 评论(0) | 转发(0) |