百度touch的手勢框架,touch.js


今天,隨便搜搜看到了一個新的手勢庫,也許能讓我為現在使用者的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類事件開關 }


所以,整體來說還是不錯的一個框架,更多具體的請大家移步到官網看文檔,畢竟是國內開發的,中文文檔比較容易上手,大家使用過程中有什么問題歡迎交流,我說的不對也歡迎提出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM