Hammer.js源碼解析(2) - Manager類

Manager類css

Manager類是用來管理Hammer.js中全部的數據的
首先咱們來看Manager類的屬性和方法
圖片描述數組

屬性:session

  1. session:顧明思議,用於保存一些全局使用的數據
  2. element:須要綁定手勢事件的dom元素
  3. options:也是初始化Hammer須要的配置
  4. handlers:保存全部的手勢綁定事件,用於成功識別手勢後觸發
  5. recognizers:保存全部的手勢,能夠在options.recognizers或直接使用默認

關於session的屬性,其中,dom

圖片描述

(1) stoped, curRecognizer用在Manager.recognize()方法中
(2) preInput, firstInput, firstMultiple, offsetDelta, prevDelta用於對原生觸摸事件的處理
(3) lastInterval, prevented用於TouchAction()方法之中spa

方法:code

  1. set(options):用於重置初始化的options
  2. stop(force):設置 session.force 屬性,能夠關閉手勢觸發
  3. recognize(inputData):參數爲通過處理的手勢數據,循環 session.recognizers 去觸發每一個 recognizerrecognizer.recognize(inputData) 事件
  4. get(recognizerName):經過 recognizer.options.name 去查看到對應的 recognizer
  5. add(recognizer):添加手勢,若是以前有相同事件的手勢,會把以前的手勢給移除
  6. remove(recognizer):移除掉某個手勢,移除成功以後會調用manager.touchAction.update()方法
  7. on(events, handler):添加手勢事件,就是將 event:[handler1, handler2, ...] 的方式在session.handlers
  8. off(events, handler):移除手勢事件,若是event對應只有一個handler,直接delete session.handlers[event], 不然從session.handlers[event]數組中除去handler元素
  9. emit(event, data):觸發手勢事件,一般都是 manager.recognize() -> recognizer.recognize() -> manager.emit() 的流程
  10. destory():銷燬整個手勢相關的數據,並還原以前元素的樣式

manage.js中還附帶了兩個單獨的方法事件

  1. toggleCssProps(manager, add):方法用於爲 element 設置手勢運動須要的css,已經銷燬時將以前的style還原
  2. triggerDomEvent():用於觸發綁定在 element 上的原生事件
相關文章
相關標籤/搜索