我正在尝试制作类似于图片幻灯片的内容。因此,我需要一种缩放(捏合)和平移图像的方法。要使用hammer.js(2.0.4。)正确检测我的手势。
平移图像并不是一个真正的问题,但我无法找到一种用捏合手势进行缩放的方法,并且仍然将图像保持在手指所在的位置("默认&# 34;任何app中的行为。)
我找到了一些解决这个问题的方法,但那些对我有用的是使用transform-origin
的方法。虽然设置transform-origin
虽然效果不是很好,所以我无法使用它。 These guys写了同样的问题'提出建议,但我不能完全理解数学。
我目前仍然坚持使用此代码(在计算出数学后需要进行大量清理:)):http://codepen.io/anon/pen/azaNRK(我使用hammer.js插件模拟SHIFT + MOUSE的捏合在桌面上) 其中大部分是非常直接的,主要的"部分是缩放。我当前的算法并没有真正起作用:
( ev.center.x - panInitX ) - ( + ev.center.x - panInitX * (scale / scaleInit) )
这部分是在计算x偏移量。除了ev.center.x
和panInitX
部分之外,我对y偏移使用了大致相同的一个。
正如您在我的codepen示例中所看到的那样,捏合并不是非常准确,只要您尝试平移和捏合就会变得更糟。所以我正在寻找解决这个问题的方法。
更新(3月6日):我的代码中有一个拼写错误,我刚刚更新了笔。现在缩放在桌面上正常工作(模拟多点触控)。但是如果你在移动设备上试用它,如果同时捏和平移它就不会起作用。