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 相关文章推荐
JavaScript获取网页中第一个链接ID的方法
Apr 03 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
JavaScript判断用户名和密码不能为空的实现代码
May 16 Javascript
D3.js实现柱状图的方法详解
Sep 21 Javascript
javascript实现鼠标点击页面 移动DIV
Dec 02 Javascript
基于ajax与msmq技术的消息推送功能实现代码
Dec 26 Javascript
vue2 自定义动态组件所遇到的问题
Jun 08 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
JavaScript中关于class的调用方法
Nov 28 Javascript
关于node-bindings无法在Electron中使用的解决办法
Dec 18 Javascript
node获取客户端ip功能简单示例
Aug 24 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 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两个n位的二进制整数相加问题的解决
2018/08/26 PHP
浅谈javascript中的作用域
2012/04/07 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python制作词云的方法
2018/01/03 Python
python实现祝福弹窗效果
2019/04/07 Python
Python读取yaml文件的详细教程
2020/07/21 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
软件测试工程师笔试题带答案
2015/03/27 面试题
教师党员个人总结
2015/02/10 职场文书
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫
TS 类型收窄教程示例详解
2022/09/23 Javascript