小菜毛毛技術分享

          與大家共同成長

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

          ExtJs 的進度的實現,您可以點這里下載本實例代碼,

          代碼詳解:

             var pbar1; //定義一個變量用于進度條對象
          var btn1; //定義一個變量用于進按鈕對象
          Ext.onReady(function(){
          pbar1=new Ext.ProgressBar({ //實例化進度條
          renderTo:"div1", //進度條呈現的一個DIV
          width:800, //進度條的寬度
          text:"單擊按鈕開始..." //在進度條里的初始文本
          });
          btn1=Ext.get("btn1"); //按鈕對象
          btn1.on("click",f1); //按鈕事件,單擊時調用f1()函數
          });
          var i=0; //初始化一個變量為0,下面會用到。
          function f1(){
          i++; //讓i加1
          pbar1.updateProgress(i/100.0); //讓進度條更新到指定的進度。這個值是0-1之間的數,我讓i/100.0,以讓它的結果是一個小數
          pbar1.updateText("進度:"+i+"%"); //進度條顯示的文本
          if(i==100){ //當i==100的時候讓按鈕狀態可以使用,并讓i=1,再讓進度條停止
          document.getElementById("btn1").disabled=false;
          i=0;
          clearInterval(x);
          }
          document.getElementById("btn1").disabled=true; //讓按鈕的狀態為不可用
          setTimeout("f1()",50);//用setTimeout函數遞歸調用f1()函數,以達到進度條一直跑的效果
          }
          //*****************進度條實例2*********************//
          var pbar2;//定義一個變量用于進度條對象
          var btn2;//定義一個變量用于進按鈕對象
          Ext.onReady(function(){
          pbar2 = new Ext.ProgressBar({ //實例化進度條
          renderTo:"div2", //進度條呈現的一個DIV
          width:600, //進度條的寬度
          text:"單擊按鈕開始..." //在進度條里的初始文本
          });
          btn2=Ext.get("btn2"); //按鈕對象
          btn2.on("click",function(){//按鈕事件,單擊時執行funciton()
          Runner.run(pbar2,btn2,10,function(){ //Runner是在下面定義。Runner.run方法參數(進度條對象,按鈕對象,進度大小:可以自由設定,進度條完成時執行的行數:如果不做任何事情可以填null)
          Ext.Msg.alert("Information","進度條已經加載完成......"); //對話框
          pbar2.reset(); //重置進度條
          pbar2.updateText("單擊按鈕重新開始..."); //更新進度條的文本
          });
          });
          });
          //這個函數是我從Ext官方下載的包里的examples里直接拷貝來的,我也懶得去研究,貌似有點復雜
          var Runner = function(){
          var f = function(v, pbar, btn, count, cb){
          return function(){
          if(v > count){
          btn.dom.disabled = false;
          cb();
          }else{
          if(pbar.id=='pbar4'){
          //give this one a different count style for fun
          var i = v/count;
          pbar.updateProgress(i, Math.round(100*i)+'% completed...');
          }else{
          pbar.updateProgress(v/count, 'Loading item ' + v + ' of '+count+'...');
          }
          }
          };
          };
          return {
          run : function(pbar, btn, count, cb){
          btn.dom.disabled = true;
          var ms = 5000/count;
          for(var i = 1; i < (count+2); i++){
          setTimeout(f(i, pbar, btn, count, cb), i*ms);
          }
          }
          }
          }();
          //***********進度條實例3**************//
          var pbar3;//定義一個變量用于進度條對象
          var btn3;//定義一個變量用于進按鈕對象
          Ext.onReady(function(){
          pbar3 = new Ext.ProgressBar({ //實例化進度條
          renderTo:"div3", //進度條呈現的一個DIV
          width:300, //進度條的寬度
          text:"單擊按鈕開始..." //在進度條里的初始文本
          });
          btn3=Ext.get("btn3"); //按鈕對象
          btn3.on("click",function(){ //按鈕單擊事件
          btn3.dom.disabled=true; //把按鈕設置為不可用狀態
          pbar3.updateText("正在更新..."); //更新進度條的文本信息
          pbar3.wait({ //開始執行進度條
          interval:100, //每次進度的時間間隔
          duration:5000, //進度條跑動的持續時間
          increment:50, //進度條的增量,這個值設的越大,進度條跑的越慢,不能小于1,如果小于1,進度條會跑出范圍
          fn:function(){ //進度條完成時執行的函數,也可設為nulll
          btn3.dom.disabled=false;//把按鈕設置為可用狀態
          pbar3.updateText("更新完成..單擊按鈕重新開始...");//更新進度條的文本信息
          }
          });
          });
          });
          posted on 2009-05-05 14:58 小菜毛毛 閱讀(1200) 評論(0)  編輯  收藏 所屬分類: EXTJS
          主站蜘蛛池模板: 纳雍县| 吉林市| 宜章县| 双桥区| 江门市| 枣庄市| 阳泉市| 鹿邑县| 南溪县| 鱼台县| 远安县| 通山县| 黔江区| 罗甸县| 彭阳县| 弥渡县| 北海市| 泰和县| 尚义县| 周至县| 德阳市| 临江市| 波密县| 长葛市| 闻喜县| 特克斯县| 盐源县| 乌拉特前旗| 河东区| 新乡市| 北安市| 仁化县| 施甸县| 牙克石市| 永川市| 白朗县| 木里| 深泽县| 东辽县| 沽源县| 天水市|