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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
javascript 基础篇4 window对象,DOM
Mar 14 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 Javascript
form表单只提交数据而不进行页面跳转的解决方案
Sep 18 Javascript
javascript搜索框效果实现方法
May 14 Javascript
JS获取鼠标坐标位置实例分析
Jan 20 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
bootstrap datetimepicker日期插件使用方法
Jan 13 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 Javascript
微信小程序实现通讯录列表展开收起
Nov 18 Javascript
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
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
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
jquery禁用右键单击功能屏蔽F5刷新
2014/03/17 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
Python递归遍历列表及输出的实现方法
2015/05/19 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
对pandas中Series的map函数详解
2018/07/25 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
python验证身份证信息实例代码
2019/05/06 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
python  logging日志打印过程解析
2019/10/22 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
标准自荐信范文
2014/01/29 职场文书
生产部管理制度
2014/01/31 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书