Javascript 使用jquery.hammer.js时如何返回X和Y坐标
我正在使用jquery.hammer.js编写一个小页面,在获取触摸事件的x和y坐标时遇到问题 我的代码如下:Javascript 使用jquery.hammer.js时如何返回X和Y坐标,javascript,jquery,coordinates,hammer.js,Javascript,Jquery,Coordinates,Hammer.js,我正在使用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 + " " +
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
}
但我得到的结果是“未定义未定义”
我有我能想到的一切,非常感谢任何帮助
)代码>在末尾
语句的结尾使用分号(;
)
我分析了
事件
对象,找到了该对象的手势
属性。手势
包含另一个属性,称为center
。最后,您可以使用pageX
和pageY
从该属性获取X和Y坐标
var x1, y1;
x1 = e.gesture.center.pageX;
y1 = e.gesture.center.pageY;
下面是您在中的示例的工作演示
此外,如果您使用多点触摸
,则可以使用手势
属性的触摸
数组来获取每个触摸的坐标。其他属性名称保持不变(pageX,pageY
)
下面是您使用
触碰
数组仅获取第一次触碰的坐标的示例。e.手势
现在已被弃用。
对于最新版本的Hammer.js,您应该使用
var tapX, tapY;
tapX = e.center.x;
tapY = e.center.y;
我需要调查原始事件以使我的工作正常。下面是一个类似情况的其他人的例子
$("#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版本
Hammer.JS-v2.0.4-2014-09-28
在hammerjs2.0.8
中,我使用ev.srcEvent.offsetX
和ev.srcEvent.offsetY尝试e.target.clientX,因为e甚至不是元素,event.tartget返回事件发生的元素。并搜索“事件数据”,您将找到even@AmitChotaliya谢谢,但这也没用。我也看到了这篇文章,但没有任何帮助either@DFania你找到解决办法了吗?我也遇到了同样的问题。仅供参考,它们提供了与页面相关的坐标,而不是与对象相关的坐标。如何获取与对象相关的坐标?对于对象相关的坐标,请尝试:e.changedPointers[0]。pageX和e.changedPointers[0]。pageY。这对我在手机上不起作用。。。它似乎与页面缩放有关,我得到的x,y坐标看起来大约是它们应该的1/2,但在事件结构中没有任何指示(例如,“比例”报告为1)
$("#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;
});