相当于' pinchstart'在锤子js?改变div的高度

时间:2014-09-25 02:42:50

标签: javascript angularjs ionic-framework hammer.js

我正在使用ionic手势的hammer.js框架中创建一个cordova应用

当您使用drag手势时,除了实际拖动之外,还有相应的dragstartdragend手势捕捉拖动的开始和结束。这很有用,因为有时您需要知道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等价物或任何可能导致我解决问题的方法?

1 个答案:

答案 0 :(得分:1)

pinchstart事件的定义为here in the HammerJS documentation 我通常在触摸端存储(在变量中)缩放(并且还转换)值,因为在hammerJS中,这些值总是指当前手势。