可以't在Android设备上的Javascript中获取触摸事件的坐标
Can't get coordinates of touchevents in Javascript on Android devices
我正在测试HTML5画布,并使用Javascript为支持触摸的设备绘制。虽然我在iOS设备上使用它,但我无法在Android上使用它。我已经将其缩小到event.pageX,不返回坐标,而是返回0或未定义(基于浏览器)。
我已经在Opera Mobile和Dolphin浏览器中运行Cyanogen 7.1的手机上测试了它,也在运行标准浏览器的Galaxy Tab 10.1(Android 3.1)上测试了。
我修改了代码,在触摸启动事件上显示警报,显示event.pageX、event.layerX和event.clientX坐标(我知道clientX应该只在iOS上工作)。
canvas.addEventListener('touchstart', function(e) {
if (readyToDraw){
alert("PageX: "+e.pageX+","+e.pageY+"'n LayerX: "+e.layerX+","+e.layerY+"'n + clientX: "+e.clientX+","+e.clientY);
// prevent the browsers default action!
e.preventDefault();
paint = true;
// Get coordinates
var c = getCoords(e);
addClick(c.x, c.y, false);
}
});
我已经在iOS中完成了完整的绘图,但甚至无法让Android注册坐标,有什么想法吗?
最终编辑:我解决了这个问题,看到了公认的答案。
最终编辑:好的,我已经完成了,如果有人发现了这个问题,并且有类似的问题,你需要访问事件中的触摸阵列,如果只是使用单点触摸(而不是多点触摸)从阵列中取出第一个项目,如下所示,或者如果不准确,你可能需要偏移它:
var touch = event.touches[0];
var x = touch.pageX;
var y = touch.pageY;
// or taking offset into consideration
var x_2 = touch.pageX - canvas.offsetLeft;
var y_2 = touch.pageY - canvas.offsetTop;
对我不起作用(在iScroll 5上下文中)。使用changedTouches[0]
,如鼠标点击事件中所建议的。pagex是移动chrome浏览器(v30.0.1599.92)中的NaN。
相关文章:
- 使用Javascript获取所选选项ID
- 可以't使用JavaScript获取width属性
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- Javascript获取上一个元素的内容
- 使用Javascript获取Twitter访问令牌
- 在不同的文件中使用Javascript获取表单数据
- 如何用javascript获取谷歌地图的经度和纬度
- 使用javascript获取表的td值
- 如何使用JavaScript获取当前URL
- 如何在谷歌网站中使用javascript获取当前页面的网址
- Javascript获取所有锚链接的索引
- 如何使用javascript获取从指定文件夹创建的所有文件的名称、大小、类型和日期
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 如何使用javascript获取下一个/转发url
- 需要使用javascript获取输入文本,然后将其添加到句子中
- 使用JavaScript获取Gridview单元格值
- 使用javascript获取跨度的文本
- 如何使用Javascript获取POST请求填充的元素的值
- JavaScript-获取数据属性的值返回未定义的值
- Javascript:获取“;FORM”;它是在.html到外部.js文件中创建的