我正在使用ionic
手势的hammer.js
框架中创建一个cordova应用
当您使用drag
手势时,除了实际拖动之外,还有相应的dragstart
和dragend
手势捕捉拖动的开始和结束。这很有用,因为有时您需要知道drag start
的信息。
我没有看到pinch
手势的等效内容,但是还有其他方法可以获取此信息吗?
我正在使用pinch
来更改div的高度。
我的问题是,如果我不知道捏开始时的高度,那么我知道的唯一高度就是当前的高度。而且由于我用夹点改变高度,这对高度有指数作用,而且它的变化非常快。 (下面的例子1)
如果我用e.gesture.scale
更改高度并将高度设置为%,那么我不知道div的高度是否有人要停止捏并稍后重启。这具有再次以100%开始捏的视觉效果,这对眼睛来说非常刺耳。 (下面的例子2)
示例1问题:高度呈指数级变化,因为只有高度I随捏合而变化
height = e.gesture.startEvent.target.offsetHeight * e.gesture.scale + "px"
不确定为什么e.gesture.startEvent.target.offsetHeight
会发生变化,我认为它是不变的,但事实并非如此。
示例2问题:在第二次捏合时,它会刺激眼睛,因为初始高度始终始于100%,即使捏合已经缩小了div。
height = e.gesture.scale*100 +"%"
理想情景 如果我在捏的开始时有高度,我可以做类似的事情:
height = pinchStartHeight*e.gesture.scale + "px"
这会使它完全缩放,因为pinchStartHeight
可能是不变的。
任何pinchStart
等价物或任何可能导致我解决问题的方法?
答案 0 :(得分:1)
pinchstart
事件的定义为here in the HammerJS documentation
我通常在触摸端存储(在变量中)缩放(并且还转换)值,因为在hammerJS中,这些值总是指当前手势。