資源預先載入組件——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