从零开始学 Web 之 移动Web(三)Zepto

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新......

github:https://github.com/Daotin/Web

微信公众号:Web前端之巅

博客园:

CSDN:https://blog.csdn.net/lvonve/

在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的探索之旅吧!

一、Zepto简介

从零开始学 Web 之 移动Web(三)Zepto

Zepto是一个轻量级的针对现代高级浏览器的 JavaScript库, 它与jquery有着类似的api。

Zepto 主要使用在移动端浏览器上面,由于移动端的浏览器都是比较新的平台,而 jQuery 主要是在 PC 上为了浏览器的兼容性而使用的,所以在移动端一般不使用 jQuery,因为它的兼容性失去了意义。

Zepto 就是移动端代替 jQuery 的 js 库,它封装了很多关于手势操作的方法。如果你会用jquery,那么你也会用zepto。

Zepto js 库文件的下载地址:https://github.com/madrobby/zepto,直接下载源码文件,相应的所有 js 文件就在 src 目录下。

二、手势事件封装

Zepto 将移动端的 touchStart,touchmove 和 touchEnd 封装成了一系列事件。

tap :触摸屏幕时触发。

singleTap :单击屏幕时触发

doubleTap:双击屏幕时触发。(如果你不需要检测单击、双击,使用 tap 代替)。

longTap :长按时触发。当一个元素被按住超过750ms触发。

swipe:滑动屏幕时触发。

swipeLeft, swipeRight, swipeUp, swipeDown:屏幕左滑,右滑,上滑,下滑时触发。

三、Zepto 模块化

Zepto 有一点和 jQuery 是不同的,就是 Zepto 是分模块的。在使用的时候不是像 jQuery 只需要引入一个 js 文件就可以了。Zepto 是分模块的。

默认的 Zepto.js 文件只包含下面一些功能:

zepto ✔ 核心模块;包含许多方法
event     通过on()& off()处理事件  
ajax     XMLHttpRequest 和 JSONP 实用功能  
form     序列化 & 提交web表单  
ie     增加支持桌面的Internet Explorer 10+和Windows Phone 8。  

如果要使用到其他的功能,就需要包含其他的 js 文件:

detect.js 提供 $.os和 $.browser消息
fx.js   The animate()方法  
fx_methods.js   以动画形式的 show, hide, toggle, 和 fade*()方法.  
assets.js   实验性支持从DOM中移除image元素后清理iOS的内存。  
data.js   一个全面的 data()方法, 能够在内存中存储任意对象。  
deferred.js   提供 $.Deferredpromises API. 依赖"callbacks" 模块. 当包含这个模块时候, $.ajax() 支持promise接口链式的回调。  
callbacks.js   为"deferred"模块提供 $.Callbacks。  
selector.js   实验性的支持 jQuery CSS 表达式 实用功能,比如 $('div:first')和el.is(':visible')。  
touch.js   在触摸设备上触发tap– 和 swipe– 相关事件。这适用于所有的touch(iOS, Android)和pointer事件(Windows Phone)。  
gesture.js   在触摸设备上触发 pinch 手势事件。  
stack.js   提供 andSelf& end()链式调用方法  
ios3.js   String.prototype.trim 和 Array.prototype.reduce 方法 (如果他们不存在) ,以兼容 iOS 3.x.  

所以,每次在使用到某一个功能的时候,就需要到 html 文件下添加相应的 js 库文件,这样就比较繁琐,更重要的是多个 js 文件会增加访问服务器的次数,那么我们可不可以像 jQuery 一样,只包含一个 js 库文件就包括所有的功能呢?

答案是肯定的。

四、Zepto 的定制

Zepto 允许将多个 js 文件打包成一个 js 文件。

操作步骤:

1、安装 Nodejs 环境

2、下载 zepto.js 源码并解压好。

4、cmd 命令行进入解压缩后的目录

5、执行npm install 命令(这一步需要联网下载)

6、编辑 zepto.js 源码中的 make文件,添加自定义模块并保存,如下

原来的:modules = (env['MODULES'] || 'zepto event ajax form ie').split(' ')

增加自己需要的模块:modules = (env['MODULES'] || 'zepto event ajax form ie fx selector touch').split(' ')

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppjzg.html