Hammer.js源码解析(2) - Manager类
Manager类
Manager类是用来管理Hammer.js中所有的数据的
首先我们来看Manager类的属性和方法
属性:
- session:顾明思议,用于保存一些全局使用的数据
- element:需要绑定手势事件的dom元素
- options:也是初始化Hammer需要的配置
- handlers:保存所有的手势绑定事件,用于成功识别手势后触发
- recognizers:保存所有的手势,可以在options.recognizers或直接使用默认
关于session的属性,其中,
(1) stoped
, curRecognizer
用在Manager.recognize()
方法中
(2) preInput
, firstInput
, firstMultiple
, offsetDelta
, prevDelta
用于对原生触摸事件的处理
(3) lastInterval
, prevented
用于TouchAction()
方法之中
方法:
- set(options):用于重置初始化的options
- stop(force):设置
session.force
属性,可以关闭手势触发 - recognize(inputData):参数为经过处理的手势数据,循环
session.recognizers
去触发每个recognizer
的recognizer.recognize(inputData)
事件 - get(recognizerName):通过
recognizer.options.name
去查看到对应的recognizer
- add(recognizer):添加手势,如果之前有相同事件的手势,会把之前的手势给移除
- remove(recognizer):移除掉某个手势,移除成功之后会调用
manager.touchAction.update()
方法 - on(events, handler):添加手势事件,就是将
event:[handler1, handler2, ...]
的方式在session.handlers
中 - off(events, handler):移除手势事件,如果
event
对应只有一个handler,直接delete session.handlers[event]
, 否则从session.handlers[event]
数组中除去handler
元素 - emit(event, data):触发手势事件,通常都是
Manager.recognize()
->recognizer.recognize()
->manager.emit()
的流程 - destory():销毁整个手势相关的数据,并还原之前元素的样式
manage.js中还附带了两个单独的方法
toggleCssProps(manager, add)
:方法用于为element
设置手势运动需要的css,已经销毁时将之前的style还原triggerDomEvent()
:用于触发绑定在element
上的原生事件
相关推荐
Duriansir 2020-07-16
inabaraku 2020-05-22
满城风絮 2012-01-04
快看是Charlie 2019-08-22
fish 2014-10-07
Cincan 2019-07-01
maimu 2014-07-29
屠龙石头 2013-01-24
小狼驿站 2012-04-28
流媒体开发先行者 2011-09-08
sgafdsg 2009-10-20
lybbb 2020-06-16
点滴技术生活 2019-11-08
changcongying 2019-07-01
Ifree团队 2011-12-27
Mango 2011-07-04
allians 2019-05-14
王尧的技术 2018-12-18
tianbwin 2019-03-23