网络编程
位置:首页>> 网络编程>> JavaScript>> JavaScript资源预加载组件和滑屏组件的使用推荐

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

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

标签:JavaScript,组件

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

0
投稿

猜你喜欢

  • 1.stack()stack()用于将列索引转换为最内层的行索引,这样叙述比较抽象,看示例就容易理解啦:准备一组数据,给其设置双索引。imp
  • 发现问题今天准备学习爬虫的scrapy模块,在这之前需要安装许多别的模块,Twisted就是其一一开始想着直接用pycharm来安装就行了,
  • 本文实例讲述了Python基于回溯法解决01背包问题。分享给大家供大家参考,具体如下:同样的01背包问题,前面采用动态规划的方法,现在用回溯
  • 计算机一般来说是需要定期的清理,系统的内存不能无限延伸,同时有一些不需要的文件也可以得以清除掉。有些人会使用os.remove来进行文件的清
  • 本文实例为大家分享了python实现QQ空间自动点赞的具体代码,供大家参考,具体内容如下项目github地址使用python实现qq空间自动
  • python协程只能运行在事件循环中,但是一旦事件循环运行,又会阻塞当前任务。所以只能在当前进程中再开一个线程,这个线程的主要任务是运行事件
  • mysql优化表释放表空间方法一:optimize table table_name这是我们经常见到的方法,这里就不在过多介绍。方法二:al
  • 英国著名学者李约瑟早在100多年前就疑惑:为什么中国的科技在唐宋时代就已领先西方,却在明清时代落后下来。对此,人们一向认为这主要是儒家思想的
  • vue中,我们构建单页面应用时候,一定必不可少用到vue-routervue-router 就是我们的路由,这个由vue官方提供的插件首先在
  • 啥是依赖规范可以以各种形式指定项目的依赖项,取决于依赖项的类型以及安装项目可能需要的可选约束版本约束^ 约束编写规范允许的版本范围^1.2.
  • 为了熟悉Python基础语法,学习了一个经典的案例:飞机大战,最后实现效果如下:实现步骤:①下载64位对应python版本的pygame:p
  •  一、概念介绍箱型图(box-plot),又称为箱线图,盒型图,盒须图。在数据探索阶段或者描述性分析过程中,我们常常用于展示多类连
  • 前言:字体反爬是什么个意思?就是网站把自己的重要数据不直接的在源代码中呈现出来,而是通过相应字体的编码,与一个字体文件(一般后缀为ttf或w
  • 组件实现的基本功能1,根据后端返回的数据格式,传入组件动态的渲染出当前角色有哪些权限(新建,修改)2,适配有2级和只有一级多选的数据3,有全
  • 目录前言1.什么是锁2.InnoDB存储引擎中的锁2.1锁的类型2.2 一致性非锁定读2.3 一致性锁定读3 锁的算法3.1行锁的3中算法总
  • 本文为大家分享了python实现外卖信息管理系统的具体代码,供大家参考,具体内容如下一、需求分析 需求分析包含如下:1、问题描述 以外卖信息
  • 字典(dict)对象是 Python 最常用的数据结构,社区曾有人开玩笑地说:"Python企图用字典装载整个世界",字
  • (应一些初学者的要求,虽然本人也绝对称不上专业,但是想让一个人快速地走出初学的迷茫,需要这种精炼的集合)首先,阐明一下我的观点:不论是什么编
  • 本文实例分析了python中的全局变量用法。分享给大家供大家参考。具体分析如下:Python是一种面向对象的开发语言,在函数中使用全局变量,
  • 尝试用python写文件,但是无法写入文件,文件内容为空。原代码片段如下,poem = "This is a poem"
手机版 网络编程 asp之家 www.aspxhome.com