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 相关文章推荐
基于jquery实现的表格分页实现代码
Jun 21 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
Apr 11 Javascript
javascript带回调函数的异步脚本载入方法实例分析
Jul 02 Javascript
js实现纯前端的图片预览
Apr 27 Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
JavaScript实现256色转灰度图
Feb 22 Javascript
JavaScript实现自动跳转文本功能
May 25 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
Feb 28 Javascript
vue文件运行的方法教学
Feb 12 Javascript
微信小程序 确认框的实现(附代码)
Jul 23 Javascript
Node.js操作MongoDB数据库实例分析
Jan 19 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
长波有什么东西
2021/03/01 无线电
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
2015/11/25 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
2016/10/27 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
2013/10/10 HTML / CSS
HTML5学习笔记之History API
2015/02/26 HTML / CSS
白色公司:The White Company
2017/10/11 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
大学生会计职业生涯规划范文
2014/02/28 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
2014年老干部工作总结
2014/11/21 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
行政司机岗位职责
2015/04/10 职场文书
毕业实习感受与体会
2015/05/26 职场文书
歌舞青春观后感
2015/06/10 职场文书
学校教师培训工作总结
2015/10/14 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python
一行Python命令实现批量加水印
2022/04/07 Python
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS