1. 程式人生 > >11-移動端開發教程-zepto.js入門教程

11-移動端開發教程-zepto.js入門教程

container request net log 全局 鏈式 tag 優勢 實用

Zepto.js是一個輕量級的針對現代瀏覽器的JavaScript庫, 它與jquery有著類似的api。 如果你會用jquery,那麽你也會用zepto。

1. Why Zepto.js?

  1. API類似jQuery,熟悉jQuery可以無縫遷移到Zepto.js
  2. Zepto僅針對高版本現代瀏覽器設計了最小核心的通用庫,代碼體積小,尤其適合移動端開發。
  3. Zepto增加了針對移動端的觸摸和手勢相關的事件
  4. Zepto模塊化做的很靈活,可以自定義組合模塊

2. Zepto.js下載

代碼下載:zeptojs中文站 、 github

2.1 自定義Zepto.js文件模塊

zepto默認是有五個模塊的,分別為zepto、event、ajax、form、ie,這五個模塊被稱為核心模塊。

moduledefaultdescription
zepto ? 核心模塊;包含許多方法
event ? 通過on()& off()處理事件
ajax ? XMLHttpRequest 和 JSONP 實用功能
form ? 序列化 & 提交web表單
ie ? 增加支持桌面的Internet Explorer 10+和Windows Phone 8。
detect 提供 $.os$.browser消息
fx The animate()方法
fx_methods 以動畫形式的 show, hide, toggle, 和 fade*()方法.
assets 實驗性支持從DOM中移除image元素後清理iOS的內存。
data 一個全面的 data()方法, 能夠在內存中存儲任意對象。
deferred 提供 $.Deferredpromises API. 依賴"callbacks" 模塊. 當包含這個模塊時候, $.ajax() 支持promise接口鏈式的回調。
callbacks 為"deferred"模塊提供 $.Callbacks
selector 實驗性的支持 jQuery CSS 表達式 實用功能,比如 $(‘div:first‘)el.is(‘:visible‘)
touch 在觸摸設備上觸發tap– 和 swipe– 相關事件。這適用於所有的touch(iOS, Android)和pointer事件(Windows Phone)。
gesture 在觸摸設備上觸發 pinch 手勢事件。
stack 提供 andSelf& end()鏈式調用方法
ios3 String.prototype.trim 和 Array.prototype.reduce 方法 (如果他們不存在) ,以兼容 iOS 3.x.

如果需要其他非核心模塊,需要下載github的源碼自行編譯。

自定義編譯步驟:

  1. 第一步:下載zeptojs源碼:源碼
  2. 第二步:解壓源碼,並打開命令行進入源碼根目錄
# 打開命令行工具,進入解壓的zepto目錄
$ cd zepto-master
# 安裝npm包依賴
$ npm install
  1. 第三步:修改make編譯文件的依賴模塊
modules = (env[‘MODULES‘] || ‘zepto event ajax form ie‘).split(‘ ‘)
## 修改:增加 touch gesture fx fx_methods等模塊 ## 
modules = (env[‘MODULES‘] || ‘zepto event ajax form ie touch gesture fx fx_methods‘).split(‘ ‘)
技術分享圖片
  1. 第四步:編譯最終的zeptojs
$ npm run-script dist

3. zepto註意事項

  1. 註意某些模塊必須打包進zeptojs文件才能用,比如:fx_methods模塊的方法:hide() show()等動畫方法。
  2. Zepto只設置全局變量$指向它本身。 沒有Zepto.noConflict方法。
  3. 不支持jQuery CSS 擴展, 然而,可選的“selector”模塊有限提供了支持幾個最常用的偽選擇器
  4. Zepto.js: 無法獲取隱藏元素寬高;
  5. Zepto 的選擇器表達式: [name=value] 中value 必須用 雙引號 " or 單引號 ‘ 括起來
  6. 移動端端點透需要阻止默認行為來規避。

其實還有很多方法的缺失,所以大家自己在寫代碼的時候多留意下zepto和jQuery的區別吧,在此就不多贅述了。

4. zepto的應用demo

用法基本跟jQuery一致,直接上手就行,不用客氣。

<ul>
    <li>list item 1</li>
    <li class="yaotaiyang">list item 2</li>
    <li>list item 3</li>
</ul>
<p>a paragraph</p>

<script type="text/javascript">
$(function() {
  $("p").on(‘click‘, function(e) {
    $("li").toggleClass("yaotaiyang");
  });
});
</script>

5. 總結

zepto.js確實非常小巧,而且非常討巧的利用了大家熟悉jQuery的優勢,確實非常可愛的一個js庫,設計的模塊中庸而又實用,在移動端的觸屏事件封裝的很不錯,移動端web開發值得推薦。

11-移動端開發教程-zepto.js入門教程