相当于'pinchstart'在hammer js?更改潜水器的高度

something equivalent to 'pinchstart' in hammer js? changing height of div

本文关键字:潜水 高度 js pinchstart hammer 相当于      更新时间:2023-09-26

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

当您使用drag手势时,除了实际拖动之外,还有相应的dragstartdragend手势可以捕捉拖动的开始和结束。这很有用,因为有时您需要了解drag start中的信息。

我看不到pinch手势的等价物,但有其他方法可以获得这些信息吗?

我正在使用pinch来更改潜水器的高度。

我的问题是,如果我不知道夹持开始时的高度,那么我唯一知道的高度就是当前的高度。由于我在改变高度,这对高度有指数效应,而且变化很快。(下面的示例1)

如果我用e.gesture.scale更改高度并将高度设置为%,那么如果有人停止挤压并稍后重新启动,我就不知道div的高度。这有一种视觉效果,即再次以100%的速度开始捏,这让眼睛很不舒服。(下面的示例2)


示例1问题:高度呈指数变化,因为只有高度我会随着收缩而变化

height = e.gesture.startEvent.target.offsetHeight * e.gesture.scale + "px"

不确定e.gesture.startEvent.target.offsetHeight为什么会变化,我认为它是恒定的,但事实并非如此。

示例2问题:在第二次挤压时,它会刺痛眼睛,因为即使挤压已经缩小了div,初始高度也总是从100%开始。

height = e.gesture.scale*100 +"%"


理想场景如果我在紧要关头有这样的身高,我可以做一些事情,比如:

height = pinchStartHeight*e.gesture.scale + "px"

这将使其完美地缩放,因为CCD_ 14可能是恒定的。

pinchStart的等价物或任何可能让我找到问题解决方案的东西吗?

在HammerJS文档中定义了pinchstart事件
我通常在触摸端存储(以可变的)刻度(并翻译)值,因为在hammerJS中,这些值总是指当前手势。