今天,隨便搜搜看到了一個新的手勢庫,也許能讓我為現在使用者的hammer.js的手勢庫帶來的煩惱而消除。
它是百度團隊開發的,現在由百度雲Clouda進行維護。
官網 http://touch.code.baidu.com/
CND的min http://touch.code.baidu.com/touch-0.2.14.min.js
在我上一篇文章里有提到怎么去使用hammer.js的框架,他有個比較讓人煩躁的缺點,就是事件綁定,每次只能綁定一個DOM元素,而且每次都需要去NEW 一個函數,大家都知道,每new一次都會在內存開辟一個新的空間,也就是他比較占用內存。
如:
var obj = new Hammer( document.getElementById('element') );
obj.on('tap',function);
如果是這樣,會給我們造成比較多的麻煩。
所以今天就簡單說說touch.js這個框架給我們開發帶來的便利。
以下是官網給我們帶來的demo。比較有趣的單手指旋轉,當然這個我們可以自己通過原生的ontouch事件自己封裝。
DEMO : http://touch.code.baidu.com/examples.html
我們看看它是如何給一個DOM快速選擇並且綁定事件的。
代碼:
touch.on(".div","tap",function);
就這樣簡單就能選擇到所有class為div的DOM元素加了一個點擊事件。
並且事件里面的this指向了發生事件的原生DOM的元素。
event對象是我們做手勢里用處比較多的一個對象,如發生的距離的X/Y,發生的type等。
總之用起來相對hammer.js還是比較不錯的,具體要到開發項目中看看遇見什么麻煩或者BUG才能知道。
他自帶的手勢事件支持有:
縮放(pinch) 旋轉(rotate) 滑動(swipe) 拖動(drag) 長按(hold) 敲擊/雙擊(tap/doubletap)
並且有簡單的配置。touch.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類事件開關 }
所以,整體來說還是不錯的一個框架,更多具體的請大家移步到官網看文檔,畢竟是國內開發的,中文文檔比較容易上手,大家使用過程中有什么問題歡迎交流,我說的不對也歡迎提出。