国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

mui進度條使用解析

mist14 / 697人閱讀

mui 進度控件使用方法:

檢查當前容器(container控件)自身是否包含.mui-progressbar類:

當前容器包含.mui-progressbar類,則以當前容器為目標控件,直接顯示進度;

否則,檢查當前容器的直接孩子節點是否包含.mui-progressbar類,若存在,則以遍歷到的第一個含有.mui-progressbar類的孩子節點為目標控件,顯示進度;

若當前容器的直接孩子節點,均不含.mui-progressbar類,則自動創建進度條控件;

如果有多個列表,每個列表在點擊下載控件時,必須要先清除上一個列表的進度條顯示效果,因此,需要在點擊列表時,就要做清除進度條的事件:

//點擊下載
      jQuery("#downloadWarp").on("tap","li",function(e){
            e.stopPropagation();
            
            //判斷當前列表是否含有 .mui-progressbar 這個進度條的控件,如果有,則必須刪除這個控件的類名
            var isProgress = jQuery("#downloadNav").find(".mui-progressbar");
            if(isProgress.hasClass("mui-progressbar")){
                 isProgress.removeClass("mui-progressbar");
            }
            //點擊列表時,要把當前列表的name及url作為屬性添加到download這個html節點上,方便下載時使用
            var downloadUrl = jQuery(this).attr("data-url");
            var downloadName = jQuery(this).attr("data-name");
            jQuery("#downloadNav").find("ul>li>span.file-name").text(downloadName);
            jQuery("#downloadNav").find("ul>li.download-url").attr("data-url",downloadUrl);
            
            //彈出框的切換動畫
            mui("#downloadNav").popover("toggle");
      });

點擊download,激活顯示進度條的方法。文件下載,需要根據 XMLHttpRequest (初始化構造函數,它是一個客戶端API,是為客戶端與服務器之間提供一個傳輸服務的功能,詳情請點擊:http://www.jianshu.com/p/22f8...)中的event來判斷正在下載數據,總下載數據,是否下載成功等來制作進度條,它的參數為:

event.total   //總的下載數據
event.loaded  //正在下載的數據
event.currentTarget.responseURL   //通過它是否為空來判斷文件是否下載成功
event.timeStamp  //下載文件所需的時間

向服務發送一個HTTP請求

xhr.open("GET", "example.php");
xhr.send();

查詢進度信息,需要用到 progress 事件,progress的回調函數為:

function updateProgress(event) {
  if (event.lengthComputable) {
      var percentComplete = event.loaded / event.total;
  }
}

上面的代碼中,event.total 是需要傳輸的總字節,event.loaded 是已經傳輸的字節。如果event.lengthComputable 不為真,則 event.total 等于0。只有 event.lengthComputable 為真的情況下,才會有進度條信息。

下面為請求開始時進度條與請求結束時的進度條樣式:

下面是點擊顯示進度條的方法:

//顯示進度條
      var spanOK = jQuery("");
      jQuery("#downloadNav").find(".download-url").on("tap",function(){
                  //獲取下載文件的url
                  var url = jQuery(this).attr("data-url");

                  //初始化傳輸服務
                  var xhr = new XMLHttpRequest();
                  //請求數據的方法,調用open()打開這個url
                  xhr.open("GET",url);
                  //初始化傳輸服務,每個xhr的傳輸都是以 onprogress 的事件開始的
                  xhr.onprogress = function (event) {
                    //只有 e.lengthComputable 為真,才會有進度條的信息
                    if (event.lengthComputable) {
                        var total = event.total;
                        var loaded = event.loaded;
                        var isUrl = event.currentTarget.responseURL;
                        var timeStamp = event.timeStamp;

                       // percentComplete 為加載時數據 / 總數據,為一個小于1的值
                        var percentComplete = event.loaded / event.total;

                       // 判斷如果請求的文件url為空,則要提示一個下載失敗的錯誤信息    
                       if(isUrl == "" || isUrl == null){
                            mui.toast("File download failed, please try again!")
                       }
                       // 獲取進度條的位置            
                        var container = mui("#downloadNav .progress");

                        //進度條值,根據這個值來顯示進度條,因為percentComplete為一個小于1的小數,而進度條是一個100的值,因此將動態的percentComplete*100取整
                        var progress =  parseInt(percentComplete * 100);
                       // 下載文件所需的時間
                        var time = (new Date(timeStamp)).getTime();
                       
                       // 進度條的值更換變量,為重新定義,可以累加,根據這個累加的值可以看到一個累加顯示的進度條
                        var progressNum = progress++;
                       // 初始化進度條的值,progress的值 1,進度條顯示
                        if (container.progressbar({
                                          progress: 1
                                    }).show()) {
                                    // 給進度條設置進度值
                                    container.progressbar().setProgress(progressNum);
                              }
                              var spanOkWarp = jQuery("#downloadNav").find("ul span.file-name");
                              // 判斷當前進度條是否含有 mui-progressbar 控件,如果有,則給這個控件設置進度值
                              var isProgress = jQuery("#downloadNav").find(".mui-progressbar");
                              if(isProgress.hasClass("mui-progressbar")){
                                   container.progressbar().setProgress(progressNum);
                               }
                              
                              
                              
                            //進度加載之后,在另一個頁面打開這個下載好的url
                            setTimeout(function(){
                              mui.openWindow({
                                          url:url
                                    });
                            },time+500);
                        }
                };
                // 發送這個請求
                xhr.send();
            });

詳細參考鏈接:你不知道的 XMLHttpRequest,來自簡書

這個方法可以幫我解決進度條的顯示問題,請參考。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88560.html

相關文章

  • ?基于H5+js開發一款音樂播放器

    前言:當下音樂播放器不勝其數,為了更好的掌握一些東西,我們來自己制作一個音樂播放器。 文章目錄: 一.開發環境:二.頁面視圖:1.主文件入口(首頁):2.音樂播放界面: 三.功能實現(1)、index.html:(2)、播放音樂(music.html):(3)、樣式文件(index.css): 四.項目地址: 一.開發環境: 開發工具:HbuliderX; 框架:Vant,Mui,V...

    BearyChat 評論0 收藏0
  • html5實現在線響應式音樂播放器

    摘要:歡迎吐槽功能思路分析用了這么多年的音樂播放軟件,目前已是網易云音樂的重度用戶。一個基本的音樂播放器基礎功能有播放暫停歌曲切換。用媒體查詢實現響應式,刪除不必要的區域。細節實現利用定時器實時顯示歌曲播放時間,利用百分比來動態改變進度條的長度。 大概很早的時候就有想法做一個音樂播放器玩玩,以前可能還考慮過做APP,大一的時候第一個html的靜態頁面也是做的音樂網站,想想,大概小時候比較喜歡...

    yankeys 評論0 收藏0
  • 記微信網頁開發單頁面返回不刷新的實現

    摘要:使用語法與要跳轉到的對應的狀態信息。頁面名字,方便調試。要跳轉到的地址,不能跨域,對于單頁應用來說沒用,傳空即可。 需求 在微信網頁開發中,點擊返回按鈕不刷新頁面,進行頁面切換,且實現傳值功能. 問題由來 在做微信網頁開發時,由于微信的左上角返回按鈕會返回上一個頁面并且刷新,無法做成打開頁面選擇內容后關閉當前頁面,并且給前一個頁面傳值的功能. 實現方法 想實現此功能一開始想到的是不進行...

    cuieney 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<