touch.js - 移動設備上的手勢識別與事件庫

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)

 

功能描述:
對手勢事件庫進行全局配置。框架

參數描述:函數

  • 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」參數說明。
相關文章
相關標籤/搜索