《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.7 技巧:使用进度条微件显示进程的状态

7.7 技巧:使用进度条微件显示进程的状态

当Web应用程序执行一个动作的持续时间超过大约两秒钟时,为用户显示动作状态是一个很好的做法。如果不知道动作的状态,通常会改变鼠标光标或显示一个旋转的效果。

在某些情况下,你能知道进程的进度。在这种情况下,最好尽可能准确地满足用户的期待。代码清单7-7介绍了jQuery UI的进度条(progressbar),可以使用它实现这样的目的。

代码清单7-7 将一个

元素转换为进度条

00 <!DOCTYPE html>
01
02 <html lang="en">
03 <head>
04  <title>jQuery UI Progressbar</title>
05  <link type="text/css" rel="stylesheet" href=
06    "http://code.jquery.com/ui/1.8.16/themes/base/jquery-ui.css"> 
07 </head>
08 <body>
09
10 <div id="my-progress"></div>
11
12 <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
13 <script src="http://code.jquery.com/ui/1.8.16/jquery-ui.min.js">
14 </script>
15
16 <script>
17 // 请将下列代码移至一个外部的.js文件中
18 $(document).ready(function() {
19 
20  var el = $('#my-progress');
21 
22  el.on('progressbarcreate', function(event, ui) {
23    el.after('<p>Start value: ' + el.progressbar('value') + '</p>');
24  });
25 
26  el.progressbar();
27 
28  // 进度条动画
29  var count = 0; 
30  setInterval(function() {
31   if(count++ > 100) count = 0;
32   el.progressbar('value', count);
33  },100);
34   
35 });
36 </script>
37 </body>
38 </html>

这个例子中使用JavaScript的内置函数setInterval来模拟实际的进度。测定实际进程的进度可能需要一些巧妙的思考和计算。

7.7.1 为进度条元素添加样式
jQuery UI使用一些类和属性扩展了目标div,并添加了一个显示进度的子div。避免在进度条div上添加文字,因为这将造成进度指示不能工作。

<div id="my-progress"
 class="ui-progressbar ui-widget ui-widget-content ui-corner-all"
 role="progressbar" aria-valuemin="0" aria-valuemax="100"
 aria-valuenow="90">
 <div class="ui-progressbar-value ui-widget-header ui-corner-left"
  style="display: block; width: 90%; "></div>
</div>

7.7.2 设置进度条的选项
下面的代码展示了如何设置进度条的选项。

在创建过程中禁用进度条:

$('#my-progress').progressbar({disabled: true});
创建一个进行了25%的进度条:

$('#my-progress').progressbar({value: 25});
7.7.3 捕获进度条的事件
下面的代码演示了使用进度条时如何处理相应的事件。

一个新的进度条被初始化:

$('#my-progress').progressbar({create: function(event, ui) {
   // 事件处理
}});
//或
$('#my-progress')
 .on('progressbarcreate', function(event, ui) {
   // 事件处理
 })
 .progressbar();

当进度条的状态改变时进行的事件处理:

$('#my-progress').progressbar({change: function(event, ui) {
   // 事件处理
}});
//或
$('#my-progress').progressbar()
 .on('progressbarchange', function(event, ui) {
   // 事件处理
 });

当进度条达到100%时进行的事件处理。你可以使用该事件来改变进度条的外观,比如可以高亮它的状态。

$('#my-progress').progressbar({complete: function(event, ui) {
 // 事件处理
}});
//或
$('#my-progress').progressbar()
 .on('progressbarcomplete', function(event, ui) {
  // 事件处理
 });

7.7.4 调用进度条的方法
进度条使用的方法与第6章讲的可拖曳交互组件以及本章开头讲的折叠菜单微件的方法相似。参阅这些章节来获得关于destroy、disable、enable、option和widget的详细内容。

将进度条的值更新到一个指定值:

$('#my-progress').progressbar('value', 50));

时间: 2024-10-03 20:36:48

《jQuery、jQuery UI及jQuery Mobile技巧与示例》——7.7 技巧:使用进度条微件显示进程的状态的相关文章

JQuery和PHP结合实现动态进度条上传显示_jquery

Windows 环境下的修改方法 第一步:修改在php5下POST文件大小的限制 1.编修php.ini 找到:max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,改为:max_execution_time = 150 找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为: max_input_time = 300 找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改

小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(七)Progress View进度条 学习笔记

小波说雨燕 第三季 构建 swift UI 之 UI组件集-视图集(七)Progress View进度条 学习笔记 1 import UIKit 2 3 class ViewController: UIViewController{ 4 5 @IBOutlet weak var progress: UIProgressView! 6 7 let operationQueue = NSOperationQueue() 8 9 var 完成进度: Int = 0{ 10 didSet(oldValu

JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)_javascript技巧

jQuery获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...});   //为Select添加事件,当选择其中一项时触发 2. var checkText=$("#select_id").find("option:selected").text();  //获取Select选择的Text 3. var checkValue=$("#se

Javascript 写的简单进度条控件_javascript技巧

很多的时候用户需要等待你"臃肿"的 Javascript 代码处理完成(Web 2.0 的特色).期间或许加入一个类似于进度条的东西让用户有点"安慰".这个东西实现起来并不复杂,无非就是获得总的处理条目,然后获得一个百分比,再显示输出. 通过我们伟大的 CSS,可以实现非常漂亮的进度条样式.加上 Javascript 的效果,就可以完全"欺骗"我们的用户,让他们有耐心等待浏览器处理完成.上述的原理已经知道了,那么就可以直接看代码了.本人使用的还是

ASP.NET技巧:教你制做Web实时进度条

asp.net|web|技巧 网上已经有很多Web进度条的例子,但是很多都是估算时间,不能正真反应任务的真实进度.我自己结合多线程和ShowModalDialog制做了一个实时进度条,原理很简单:使用线程开始长时间的任务,定义一个Session,当任务进行到不同的阶段改变Session的值,线程开始的同时使用ShowModalDialog打开一个进度条窗口,不断刷新这个窗口获取Session值,反应出实时的进度.下面就来看看具体的代码:(文章结尾处下载源代码) 先新建一个Default.aspx

ASP.NET技巧:教你制做Web实时进度条_实用技巧

网上已经有很多Web进度条的例子,但是很多都是估算时间,不能正真反应任务的真实进度.我自己结合多线程和ShowModalDialog制做了一个实时进度条,原理很简单:使用线程开始长时间的任务,定义一个Session,当任务进行到不同的阶段改变Session的值,线程开始的同时使用ShowModalDialog打开一个进度条窗口,不断刷新这个窗口获取Session值,反应出实时的进度.下面就来看看具体的代码:(文章结尾处下载源代码) 先新建一个Default.aspx页面,客户端代码: <body

JS和Jquery获取和修改label的值的示例代码_javascript技巧

获取值: label标签在JS和Jquery中使用不能像其他标签一样用value获取它的值: 复制代码 代码如下: var label=document.getElementById("id"); var value=label.value; var value=$("#id").val(); 可以这样: JS: 复制代码 代码如下: var label=document.getElementById("id"); var value=label

asp.net使用jQuery获取RadioButtonList成员选中内容和值示例_实用技巧

复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Web.Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o

Javascript jquery css 写的简单进度条控件_jquery

Javascript 进度条 Demo 原理就是使用 Javascript 控制 SPAN CSS 的宽度(以及其他的样式),详细信息可以参见链接:http://www.jb51.net/article/13993.htm