几周前,我从 Koen Bok 发现了这个小 gem ,它将 Hammer.js 事件集成到 Framer.js 中。然而,它是为旧版本的 Hammer 制作的,此后该版本已被重写。从理论上讲,我可以通过调整 HammerEvents 轻松地将其移植到新版本,并且对于平移和滑动事件来说一切似乎都工作正常。但由于某种原因,我无法捏紧或旋转事件来使用最新的 Hammer 脚本 (2.0.4)。
这是 Hammer.js 1.1.3 的原始代码片段:
HammerEvents =
Tap: 'tap'
DoubleTap: 'doubletap'
Hold: 'hold'
Touch: 'touch'
Release: 'release'
Gesture: 'gesture'
Swipe: 'swipe'
SwipeUp: 'swipeup'
SwipeDown: 'swipedown'
SwipeLeft: 'swipeleft'
SwipeRight: 'swiperight'
Transform: 'transform'
TransformStart: 'transformstart'
TransformEnd: 'transformend'
Rotate: 'rotate'
Pinch: 'pinch'
PinchIn: 'pinchin'
PinchOut: 'pinchout'
window.Events = _.extend Events, HammerEvents
class HammerLayer extends Framer.Layer
on: (eventName, f) ->
if eventName in _.values(HammerEvents)
@ignoreEvents = false
hammer = Hammer(@_element).on eventName, f
else
super eventName, f
window.Layer = HammerLayer
有人知道出了什么问题吗? 非常感谢!
最佳答案
刚刚尝试了该片段。它似乎工作得很好。 我用这段代码尝试过:
doubleTap = new HammerLayer
doubleTap.on HammerEvents.DoubleTap, ->
print "You just doubletapped me."
您是否确定将 Hammer.js javascript 库包含到您的 Framer 原型(prototype)中?
- 保存http://hammerjs.github.io/dist/hammer.min.js进入您的 Framer 项目。我把它放在一个名为
js
的子文件夹中. - 打开
index.html
在 Framer 文件夹内并添加行<script src="js/hammer.min.js"></script>
毕竟其他<script>
内含物。 - 您的 Hammer 事件现在应该在 Framer 中触发。
关于javascript - Framer.js Hammer.js 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28393710/