大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新......
github:https://github.com/Daotin/Web
微信公众号:Web前端之巅
博客园:
CSDN:https://blog.csdn.net/lvonve/
在这里我会从 Web 前端零基础开始,一步步学习 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(' ')