JavaScript資源預先載入組件和滑屏組件的使用推薦_javascript技巧

來源:互聯網
上載者:User

資源預先載入組件——preload

  • 隊列,可以支援隊列載入和回調,也可以載入視頻或者音頻
  • 進度條,可以動態擷取進度條資訊
  • 支援img標籤的預先載入,添加pSrc屬性即可
  • 原生ES5
  • demo

Install:

git clone https://github.com/jayZOU/preload.gitnpm installnpm run es6

訪問http://localhost:8080/es6-demo

Examples  <audio pSrc="../public/audio/a.mp3" preload="auto" controls></audio>  <audio pSrc="../public/audio/b.mp3" preload="auto" controls></audio>  <img pSrc="../public/image/b1.jpg" alt="">  <img pSrc="../public/image/b2.jpg" alt="">  <img pSrc="../public/image/b3.jpg" alt="">  <img pSrc="../public/image/b4.jpg" alt="">  /**  *  Preload 資源預先載入組件  *  @author jayzou  *  @time 2016-1-12  *  @version 1.0.6  *  @class Preload  *  @param {object}  sources        必填 載入隊列容器,支援隊列載入以及載入一個隊列後傳入回調  *  @param {boolean} isDebug        選填   是否開啟debug選項,用於移動端調試,預設false  *  @param {object} connector      選填   後台資料介面,可選擇同步或非同步  *  @param int     loadingOverTime   選填   預先載入逾時時間,預設15, 單位:秒  *  @param {object} loadingOverTimeCB  選填   預先載入逾時回調  *  @param {object}  wrap        選填  進度條容器,返回記載進度資訊  *  @param {object}  completeLoad    選填  完成所有附加元件執行回調,包括同、非同步擷取資料  **/  var preload = new Preload({    isDebug: true,    sources: {      imgs: {        source: [          "../public/image/b2.jpg",          "../public/image/b1.jpg"        ],        callback: function() {          console.log("隊列1完成");        }      },      audio: {        source: [          "../public/audio/a.mp3",          "../public/audio/b.mp3"        ]      },      imgs2: {        source: [          "../public/image/b3.jpg",          "../public/image/b4.jpg",          "yun_qi_img/OrthographicCamera.jpg",          "yun_qi_img/audio.gif",        ],        callback: function() {          console.log("隊列3完成");        }      }    },    loadingOverTime: 3,    loadingOverTimeCB: function(res) {      console.log("資源載入逾時:", res);    },    connector: {      int1: {        url: 'http://localhost/test/index.php?callback=read&city=上海市',        jsonp: true      },      int2: {        url: 'http://localhost/test/index.php?callback=read&city=深圳市',        jsonp: false,        callback: function(data) {          console.log("同步:", data);        }      }    },    progress: function(completedCount, total) {      // console.log(total);      console.log(Math.floor((completedCount / total) * 100));    },    completeLoad: function() {      console.log("已完成所有附加元件");    }  });  function read() {    console.log("非同步:", arguments[0])  }

Notes
隊列名稱不能重名,否則後面的隊列會覆蓋前面
ES6模式編寫,隊列之間同步載入,隊列內資源為非同步載入


滑屏組件——slide

  • 自訂滑屏組件,可定製滑屏動畫
  • 可控制每屏動畫效果

Install:

git clone https://github.com/jayZOU/slide.gitnpm installgulp

訪問http://localhost:8080/

Examples全選複製放進筆記  /**  *  slide 滑屏組件  *  @author jayzou  *  @time 2015-10-25  *  @version 0.0.1  *  @class Slide  *  @param String  wrap          必填  傳入滑動容器ID  *  @param String  currentClass      選填  滑動時切換動畫class,預設current  *  @param boolean  startLocalstorage    選填  記錄當前瀏覽頁面  *  @param {Object} onChange        選填  切換完成回調  *  @param {Object} onDownChange      選填  下滑完成時回調  *  @param {Object} onUpChange       選填  上滑完成時回調  *  @param {Object} defaultClass      選填  滑動過程動畫效果  **/  var slide = new Slide({    wrap: 'wrap',          //必填,傳入滑動容器ID    currentClass: 'current',    //選填,滑動時切換動畫class    startLocalstorage: false,    //選填,是否開啟localstorage記錄頁面返回後是否回到上次訪問的頁面,預設false    onChange: function(){      //選填,每屏切換完成時的回調      console.log("onchange");    },    onDownChange: function(){    //選填,下滑完成時回調      console.log("onDownChange");    },    onUpChange: function(){    //選填,上滑完成時回調      console.log("onUpChange");    },    defaultClass: {          //選填,滑動過程動畫效果      'webkitTransition': '-webkit-transform 0.5s ease',  //需要加首碼      'transform': 'translate(0px, 0px)'          //不需要加首碼    },  });  // slide.next();            //下一頁  // slide.prev();            //上一頁  // slide.playTo(3);            //直接跳轉第n頁  // console.log(slide.getPage());    //擷取為當前頁數  // slide.lockPage();          //鎖住螢幕,禁止滑動  // slide.unLockPage();          //解鎖螢幕,允許滑動  //輔助類  // slide.toggleClass(targ, className);  //置換class  // slide.addClass(targ, className);    //添加class  // slide.removeClass(targ, className);  //刪除class  // slide.css(o, style);          //添加style樣式

Notes
滑動容器只能傳入ID值,不允許傳入class

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.