Touch.js
是移動設備上的手勢識別與事件庫, 由百度雲Clouda
團隊維護,也是在百度內部普遍使用的開發工具。Touch.js
手勢庫專爲移動設備設計。Touch.js
對於網頁設計師來講,是一款不錯的輔助工具,能夠減小不少寫框架控制器的時間。
網頁合理使用Touch.js
不但能增長網頁的美觀感,並且在節約時間,減小人力投入也有極大的幫助。css
Touch.js官網: https://www.awesomes.cn/repo/Clouda-team/touchjs
github:https://github.com/Clouda-team/touchjs
git
touch.on(element, types, callback)
參數github
事件綁定方法,根據參數區分事件綁定和事件代理。ruby
參數名 | 概述 |
---|---|
element |
類型element或string, 元素對象、選擇器 |
types |
類型string ,事件的類型(多爲手勢事件),可接受多個事件以空格分開;支持原生事件的透傳 |
callback |
類型function, 事件處理函數, 移除函數與綁定函數必須爲同一引用 |
touchstart
//手指剛接觸屏幕時觸發touchmove
//手指在屏幕上移動時觸發touchend
//手指從屏幕上移開時觸發bash
touch.config(config)
功能描述:對手勢事件庫進行全局配置。
框架
參數描述:函數
{ tap: true, //tap類事件開關, 默認爲true
doubleTap: true, //doubleTap事件開關, 默認爲true
hold: true, //hold事件開關, 默認爲true
holdTime: 650, //hold時間長度
swipe: true, //swipe事件開關
swipeTime: 300, //觸發swipe事件的最大時長
swipeMinDistance: 18, //swipe移動最小距離
swipeFactor: 5, //加速因子, 值越大變化速率越快
drag: true, //drag事件開關
pinch: true, //pinch類事件開關
}
百度touch.js能夠說是Web移動端touch點擊事件不錯的解決方案,搭配zepto.js或者jQuery使用起來解決了移動端click點擊事件300ms的延遲問題。工具
近期touch.js百度官方網站忽然沒法訪問了,不知道究竟是什麼緣由。官網地址:http://touch.code.baidu.com/開發工具
不過值得慶幸的是,百度官方在Clouda項目的文檔說明中還有留有關於touch.js的說明文檔,詳見:http://cloudajs.org/docs/step4_API_Documentation#h2_7網站
不過touch.js上手仍是很容易的,語法:
touch.on(‘#btn-ok’,’tap’,function(ev){ //這裏是你想要執行的操做,隨便寫 })
上面是一個簡單的tap操做,touch.js還支持滑動、縮放等等手勢操做,詳細的手勢事件以下:
touch.js支持的手勢事件類型:
分類 | 參數 | 描述 |
---|---|---|
縮放 | pinchstart | 縮放手勢起點 |
~ | pinchend | 縮放手勢終點 |
~ | pinch | 縮放手勢 |
~ | pinchin | 收縮 |
~ | pinchout | 放大 |
旋轉 | rotateleft | 向左旋轉 |
~ | rotateright | 向右旋轉 |
~ | rotate 旋 | 轉 |
滑動 | swipestart | 滑動手勢起點 |
~ | swiping | 滑動中 |
~ | swipeend | 滑動手勢終點 |
~ | swipeleft | 向左滑動 |
~ | swiperight | 向右滑動 |
~ | swipeup | 向上滑動 |
~ | swipedown | 向下滑動 |
~ | swipe | 滑動 |
拖動開始 | dragstart | 拖動屏幕 |
拖動 | drag | 拖動手勢 |
拖動結束 | dragend | 拖動屏幕 |
拖動 | drag | 拖動手勢 |
長按 | hold | 長按屏幕 |
敲擊 | tap | 單擊屏幕 |
~ | doubletap | 雙擊屏幕 |
事件代理
touch.on( delegateElement, types, selector, callback );
功能描述
事件代理方法。
參數描述
參數 | 類型 | 描述 |
---|---|---|
delegateElement | element或string | 事件代理元素或選擇器 |
types | string | 手勢事件的類型, 可接受多個事件以空格分開;支持原生事件的透傳。目前支持的具體事件類型,詳見《手勢事件類型》。 |
selector | string | 代理子元素選擇器, |
callback | function | 事件處理函數,如需瞭解手勢庫支持的新屬性,詳見《事件對象》 |
事件配置
touch.config(config)
功能描述
對手勢事件庫進行全局配置。
參數描述
config爲一個對象
{ tap: true, //tap類事件開關, 默認爲true doubleTap: true, //doubleTap事件開關, 默認爲true hold: true, //hold事件開關, 默認爲true holdTime: 650, //hold時間長度 swipe: true, //swipe事件開關 swipeTime: 300, //觸發swipe事件的最大時長 swipeMinDistance: 18, //swipe移動最小距離 swipeFactor: 5, //加速因子, 值越大變化速率越快 drag: true, //drag事件開關 pinch: true, //pinch類事件開關 }
事件對象
事件處理函數的第一個參數爲事件對象,除了原生屬性以外,百度手勢庫還提供了部分新屬性。
如下爲手勢新增的屬性:
屬性 | 描述 |
---|---|
originEvent | 觸發某事件的原生對象 |
type | 事件的名稱 |
rotation | 旋轉角度 |
scale | 縮放比例 |
direction | 操做的方向屬性 |
fingersCount | 操做的手勢數量 |
position | 相關位置信息, 不一樣的操做產生不一樣的位置信息 |
distance | swipe類兩點之間的位移 |
distanceX, x | 手勢事件x方向的位移值, 向左移動時爲負數 |
distanceY, y | 手勢事件y方向的位移值, 向上移動時爲負數 |
angle | rotate事件觸發時旋轉的角度 |
duration | touchstart 與 touchend之間的時間戳 |
factor | swipe事件加速度因子 |
startRotate | 啓動單指旋轉方法,在某個元素的touchstart觸發時調用 |
事件綁定
touch.on( element, types, callback );
功能描述
事件綁定方法,根據參數區分事件綁定和事件代理。
參數描述
參數 | 類型 | 描述 |
---|---|---|
element | element或string | 事件綁定元素或選擇器 |
types | string | 事件的類型, 可接受多個事件以空格分開,支持原生事件的透傳。具體參數說明,同「事件代理」方法中的「types」參數說明。 |
callback | function | 事件處理函數,具體參數說明,同「事件代理」方法中的「callback」參數說明。 |
解除事件代理
touch.off( delegateElement, types, selector, callback )
功能描述
解除某元素上的事件代理。
參數描述
參數 | 類型 | 描述 |
---|---|---|
delegateElement | element或string | 元素對象或選擇器 |
types | string | 事件的類型,具體參數說明,同「事件代理」方法中的「types」參數說明。 |
selector | string | 代理子元素選擇器 |
callback | function | 事件處理函數, 移除函數與綁定函數必須爲同一引用。具體參數說明,同「事件代理」方法中的「callback」參數說明。 |
解除事件綁定
touch.off( element, types, callback )
功能描述
解除某元素上的事件綁定,根據參數區分事件綁定和事件代理。
參數描述
參數 | 類型 | 描述 |
---|---|---|
element | element或string | 元素對象、選擇器 |
types | string | 事件的類型,具體參數說明,同「事件代理」方法中的「types」參數說明。 |
callback | function | 事件處理函數, 移除函數與綁定函數必須爲同一引用;具體參數說明,同「事件代理」方法中的「callback」參數說明。 |
觸發事件
touch.trigger(element, type);
功能描述
觸發某個元素上的某事件。
參數描述
參數 | 類型 | 描述 |
---|---|---|
element | element或string | 元素對象或選擇器 |
type | string | 事件的類型,具體參數說明,同「事件代理」方法中的「types」參數說明。 |