jquery ui进度条progressbar实现代码

发布时间:2019-11-12编辑:脚本学堂
有关jquery ui进度条的实现代码,jquery 进度条的实现方法很多,用jquery ui实现进度条相对比较简单。

1、jquery ui进度条的例子

首先,引入样式和js库:
 

复制代码 代码示例:
<link type="text/css" rel="Stylesheet" href="css/jquery-ui-1.7.2.custom.css" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script>

可以使用div来作为显示进度条的载体:
 

<div id="divProgressbar"></div>

将上面的div变成进度条
 

复制代码 代码示例:
<script type="text/javascript">
$(function(){
$("#divProgressbar").progressbar({value: 30});  //初始话进度条并设置初始值为30
alert("当前值是: " + $("#divProgressbar").progressbar("option", "value"));  //读取进度条的当前值
});
</script>
 

 
二、让jquery进度条动起来。

修改jquery代码:
 

复制代码 代码示例:
<script type="text/javascript">
$(function(){
$("#divProgressbar").progressbar({value: 30});
alert("当前值是: " + $("#divProgressbar").progressbar("option", "value"));
$("#divProgressbar").progressbar({value: 60});
alert("当前值是: " + $("#divProgressbar").progressbar("option", "value"));
$("#divProgressbar").progressbar({value: 90});
alert("当前值是: " + $("#divProgressbar").progressbar("option", "value"));
});
</script>
 

运行后,进度条没变化,每次弹出框的值都是30吧!为什么捏?因为.progressbar({value: 30})是用来初始化的上面已经在代码的注释里提到,在dialog那篇里也说到同一个控件是不允许被多次初始化的,所以我们必须用其它的方法来修改进度条的当前值,jQuery提供了.progressbar("option", "value", 60)方法来设置当前值,这里还可以发现,不在后面加数值参数的话就是读取当前值。

修改代码为:
 

复制代码 代码示例:
<script type="text/javascript">
$(function(){
$("#divProgressbar").progressbar({value: 30});
alert("当前值是: " + $("#divProgressbar").progressbar("option", "value"));
$("#divProgressbar").progressbar("option", "value", 60);
alert("当前值是: " + $("#divProgressbar").progressbar("option", "value"));
$("#divProgressbar").progressbar("option", "value", 90);
alert("当前值是: " + $("#divProgressbar").progressbar("option", "value"));
});
</script>
 

进度条动起来了,而且弹出框的值也变化了。
 
三,修改为可使用的jquery进度条
修改代码:
 

复制代码 代码示例:
<script type="text/javascript">
$(function(){
updateProgressbarValue();   //调用函数
  
function updateProgressbarValue(){
$("#divProgressbar").progressbar({value: 0});   //初始化进度条,如果已经初始化则会跳过
var newValue = $("#divProgressbar").progressbar("option", "value") + 3; //读取进度条现有值并计算出新值
$("#divProgressbar").progressbar("option", "value", newValue);  //设置进度条新值
setTimeout(updateProgressbarValue, 500);//使用setTimeout函数延迟调用updateProgressbarValue函数,延迟时间为500毫秒
}
});
</script>

使用了setTimeout来延迟调用函数,并且这是一个自嵌套函数,如果没有终止它的话它将一直运行下去,这是不被允许的。
在setTimeout(updateProgressbarValue, 500);前加入下面的代码:
alert(newValue);
 
四、如何终止进度条的执行

只需要在setTimeout(updateProgressbarValue, 500);前加一个判断:
 

if(newValue <= 100)setTimeout(updateProgressbarValue, 10);

在进度条满了后终止这个进度条的继续执行。

最终代码:
 

复制代码 代码示例:
<script type="text/javascript">
$(function(){
updateProgressbarValue();
  
function updateProgressbarValue(){
$("#divProgressbar").progressbar({value: 0});
var newValue = $("#divProgressbar").progressbar("option", "value") + 10;
$("#divProgressbar").progressbar("option", "value", newValue);
alert(newValue);
if(newValue <= 100) setTimeout(updateProgressbarValue, 10);
}
});
</script>