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 相关文章推荐
json的前台操作和后台操作实现代码
Jan 20 Javascript
如何用ajax来创建一个XMLHttpRequest对象
Dec 10 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
JavaScript中获取纯正的undefined的方法
Mar 06 Javascript
Javascript实现图片懒加载插件的方法
Oct 20 Javascript
JS产生随机数的用法小结
Dec 10 Javascript
vue监听键盘事件的快捷方法【推荐】
Jul 11 Javascript
javascript实现遮罩层动态效果实例
May 14 Javascript
vue 弹出遮罩层样式实例
Jul 22 Javascript
javascript递归函数定义和用法示例分析
Jul 22 Javascript
Vant 在vue-cli 4.x中按需加载操作
Nov 05 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
深入探讨PHP中的内存管理问题
2011/08/31 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
JS焦点图切换,上下翻转
2011/05/12 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
简单介绍Python中的JSON模块
2015/04/08 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python @property的用法及含义全面解析
2018/02/01 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
Python命令行click参数用法解析
2019/12/19 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Django返回HTML文件的实现方法
2020/09/17 Python
Django实现简单的分页功能
2021/02/22 Python
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
C++面试题目
2013/06/25 面试题
导游的职业规划书范文
2013/12/27 职场文书
书香校园活动方案
2014/02/28 职场文书
酒店端午节活动方案
2014/08/26 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
关于python中模块和重载的问题
2021/11/02 Python