我正在使用jquery.hammer.js编写一个小页面,我在获取触摸事件的x和y坐标时遇到了问题。
我的代码如下:
var x1, y1;
var element = document.getElementById("myDIV")
$(element).hammer().on("touch", function(e){
x1 = e.clientX
y1 = e.clientY
document.getElementById("resultDIV").innerHTML = x1 + " " + y1
}但我得到的结果是“未定义的未定义的”。
我有我能想到的一切,任何帮助都非常感谢。
发布于 2014-08-18 01:00:43
e.gesture现在已弃用。对于最新版本的Hammer.js,您应该使用
var tapX, tapY;
tapX = e.center.x;
tapY = e.center.y;发布于 2013-07-01 15:34:15
);。statement.;),首先阅读文档和how-to部分。您可以从documentation on GitHub中找到所需的信息。
更新:
我已经分析了event对象并找到了该对象的gesture属性。gesture包含另一个名为center的属性。最后,您可以使用pageX和pageY从此属性获得X和Y坐标。
var x1, y1;
x1 = e.gesture.center.pageX;
y1 = e.gesture.center.pageY;下面是您的示例在JSFiddle中的工作演示。
而且,如果使用multi-touch,则可以使用gesture属性的touches数组来获取每次触摸的坐标。其他属性名称保持不变(pageX, pageY)。
var x1, y1;
x1 = e.gesture.touches[0].pageX;
y1 = e.gesture.touches[0].pageY;下面是使用touches数组获取第一次接触坐标的示例的second demo。
发布于 2014-12-09 06:55:18
我需要查看原始事件才能让我的事件正常工作。对于其他有类似情况的人,这里有一个例子。
$("#id").hammer({ domEvents: true }).on("press", ".elems", function (e) {
console.log("pressed");
console.log(e.originalEvent.gesture.center.x);
console.log(e.originalEvent.gesture.center.y);
return false;
});锤子版Hammer.JS - v2.0.4 - 2014-09-28
https://stackoverflow.com/questions/17391478
复制相似问题