我正在尝试开发一种我设计的交互,其中html元素在缩放期间被缩放(缩放高度),以便元素的高度变为手势中涉及的两个手指之间的距离.
就目前而言,我正在尝试聆听并发出警报,然后听取捏合并用jQuery发出单独的警报.你知道怎么做吗?也许没有插件?
我试图用两个插件做到这一点.更多关于第一次尝试,稍后.
第二次尝试出了什么问题,它表示捏合是一个捏合,甚至是敲击或咔哒声都是捏出来的.
我的第二次尝试是在这个JS小提琴:http://jsfiddle.net/hnabM/1/
这是第二次尝试中使用的代码:
//pinchZoom is the distance between the two fingers involved in the pinch
var pinchIn = null;
var dist = null;
$('.pinch').swipe({
pinchIn:function(event, direction, distance, duration, fingerCount, pinchZoom){
dist = null;
},
pinchOut:function(event, direction, distance, duration, fingerCount, pinchZoom){
dist = null;
},
pinchStatus:function(event, phase, direction, distance, duration, fingerCount, pinchZoom){
if(dist != null){
if(dist > pinchZoom){
pinchIn = true;
}
else{
pinchIn = false;
}
dist = pinchZoom;
if(pinchIn === true){
console.log("pinching in");
}
else{
console.log("pinching out");
}
}
else{
dist = pinchZoom;
}
},
fingers:2,
pinchThreshold:0
});
这是我第一次尝试的.我得到了它的工作,但当我把它与我的网站结合起来时,它突然无法正常工作.
我第一次尝试这个时,是用jQuery版本的hammer.js(http://eightmedia.github.io/hammer.js/)做的 – 一个有点着名的用于收听多点触控手势的库.我成功完成了它,除了我需要它工作的网站.这里正在研究类.polaroid(图像),尝试捏他们,他们y缩小,捏他们发出警报:http://goo.gl/oOQDH0.然而,当我在网站中应用相同的精确js,我需要它的网站,它突然不起作用.所有的依赖都在那里.没有错误.由于某些原因,滚动也有所抑制(在触摸设备上很难做到).它是应用于.dataCard类(标题下的白色矩形)的完全相同的代码,但无法正常工作:http://goo.gl/dagKxT
我非常感谢任何和所有帮助,以促进这种互动的发展和工作.
提前致谢!
最佳答案 不要忽视或阻止你这样做,但有什么特别的理由让你自己写这个吗?
无论如何看看hammer.js
https://github.com/EightMedia/hammer.js
它支持/模拟了许多常见的触摸手势.包括捏缩放.它们的示例页面上有:
https://github.com/EightMedia/hammer.js/blob/master/examples/pinchzoom.html
你可能已经完成了你的研究并看到了很多像这样的库,但Hammer的代码库确实很好,很容易理解.
如果你打算从头开始,你可能最终会在开始时检测到一个手势并用一个公共标志将其锁定(因此其他手势不会启动),然后在手势完成时重置标志.