小杨
小杨
  • 发布:2015-01-04 18:50
  • 更新:2015-01-05 16:55
  • 阅读:3714

获取Tap的点击位置

分类:MUI

目前我正在用Canvas绘图,想根据鼠标点击的位置做不同处理。

canvas.addEventListener("tap", function(e) {  
    //这里如何获取用户按键的位置?    
});

e 没有x 或者pageX之类的属性。

2015-01-04 18:50 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

e.detail.gesture可以获得当前原始的event.然后获取pageX之类数据  
也可以打印e.detail获取里边的详细数据
  • 小杨 (作者)

    谢谢,但获取到pageX为0 。请问用什么方法可以获取用户点击处的坐标? 用mousedown响应速度太慢了。。。。。

    2015-01-05 13:44

  • DCloud_UNI_FXY

    console.log(e.detail.gesture.changedTouches[0].pageX);

    2015-01-05 13:48

  • 小杨 (作者)

    回复 DCloud_UNI_FXY:真的可以,非常感谢。

    2015-01-05 15:26

小杨

小杨 (作者)

感谢 DCloud_MUI_FXY 给出的正确解决方法。

我自己也想了个解决办法,就是在touchdown中获取e.pageX
然后在tap中使用。 这样算是间接解决了问题。

不知道有没有相关书籍可以看? 想系统学习一下。

我用的调试机器是IPHONE 。 看不到调试信息,只能一个个的alert,很郁闷。
希望能在 HBuilder中输出调试信息。

DCloud_UNI_FXY

DCloud_UNI_FXY

iphone的调试信息输出。HBuilder团队正在处理中。

书籍不太清楚,可以直接查询MDN。https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent

  • 小杨 (作者)

    谢谢, HTML5的资料确实不怎么多。 刚找到一个w3c的官方标准,应该全一些。

    2015-01-06 16:59

雨天

雨天 - 计算机的大学生

var posiX = event.pageX || (event.clientX +(document.documentElement.scrollLeft || document.body.scrollLeft));
var posiY = event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop));
alert(posiX+"_"+posiY);
//无视屏幕和iframe或者设备等一些因素,相对于html页面的坐标获得。自己试一下

  • 小杨 (作者)

    谢谢。 我目前用的是全屏的webview和全屏的canvas所以计算相对简单,主要是对这些对象不熟悉。 另外,在tap事件中没有clientX和clientY。

    2015-01-06 16:58

该问题目前已经被锁定, 无法添加新回复