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

作者:jayzou 时间:2024-04-22 22:35:11 

资源预加载组件——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,组件
0
投稿

猜你喜欢

  • Python MySQLdb 使用utf-8 编码插入中文数据问题

    2023-07-31 11:04:13
  • 浅析Python 抽象工厂模式的优缺点

    2021-08-12 01:33:17
  • python3 判断列表是一个空列表的方法

    2022-02-03 09:40:07
  • python3列表删除大量重复元素remove()方法的问题详解

    2021-02-02 19:26:03
  • access改mdb为asp所带来的灾难 附mdb防下载方法

    2011-03-03 11:07:00
  • Python中loguru日志库的使用

    2023-03-02 13:24:27
  • 利用PHP实现递归删除链表元素的方法示例

    2024-04-23 09:09:41
  • 深入了解Python中pop和remove的使用方法

    2021-02-14 00:32:43
  • Python3.遍历某文件夹提取特定文件名的实例

    2022-12-08 04:48:59
  • python字符串拼接+和join的区别详解

    2021-10-19 01:26:39
  • 查看已安装tensorflow版本的方法示例

    2021-09-21 03:49:11
  • 貌似很强的mysql备份策略分享

    2024-01-27 18:37:03
  • Python编程使用PyQt5库实现动态水波进度条示例

    2021-11-16 18:50:16
  • Python中安装库的常用方法介绍

    2022-04-03 08:13:17
  • 详解使用Python写一个向数据库填充数据的小工具(推荐)

    2024-01-13 19:06:41
  • Advanced SQL Injection with MySQL

    2024-01-24 18:09:24
  • JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴

    2024-04-29 13:40:59
  • Python中使用copy模块实现列表(list)拷贝

    2022-05-13 02:46:48
  • Python 常用 PEP8 编码规范详解

    2022-09-03 06:21:12
  • windows 10下安装搭建django1.10.3和Apache2.4的方法

    2022-01-01 01:07:51
  • asp之家 网络编程 m.aspxhome.com