JavaScript资源预加载组件和滑屏组件的使用推荐


Posted in Javascript onMarch 10, 2016

资源预加载组件——preload

  • 队列,可以支持队列加载和回调,也可以加载视频或者音频
  • 进度条,可以动态获取进度条信息
  • 支持img标签的预加载,添加pSrc属性即可
  • 原生ES5
  • demo

Install:

git clone https://github.com/jayZOU/preload.git
npm install
npm 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",
          "http://7xl041.com1.z0.glb.clouddn.com/OrthographicCamera.png",
          "http://7xl041.com1.z0.glb.clouddn.com/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.git
npm install
gulp

访问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

Javascript 相关文章推荐
解决 firefox 不支持 document.all的方法
Mar 12 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
May 21 Javascript
js 设置选中行的样式的实现代码
May 24 Javascript
尝试在让script的type属性等于text/html
Jan 15 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
Apr 12 Javascript
jquery 检测元素是否存在的实例代码
Nov 19 Javascript
Jquery中offset()和position()的区别分析
Feb 05 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 Javascript
Angular2使用Angular CLI快速搭建工程(一)
May 21 Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
Sep 04 Javascript
vue elementUI tree树形控件获取父节点ID的实例
Sep 12 Javascript
node.js实现爬虫教程
Aug 25 #Javascript
ES6中如何使用Set和WeakSet
Mar 10 #Javascript
解析javascript瀑布流原理实现图片滚动加载
Mar 10 #Javascript
javascript实现可键盘控制的抽奖系统
Mar 10 #Javascript
基于javascript制作微信聊天面板
Aug 09 #Javascript
关于Bootstrap弹出框无法调用问题的解决办法
Mar 10 #Javascript
TypeScript Type Innference(类型判断)
Mar 10 #Javascript
You might like
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
python中class的定义及使用教程
2019/09/18 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
波兰珠宝品牌:YES
2019/08/09 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
网上蛋糕店创业计划书
2014/01/24 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
软弱涣散基层党组织整改方案
2014/10/25 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书