zepto tap时间获取触点位置的坐标

$('#Game_UI').tap(function(e) {
  console.log(e.clientX, e.clientY);
});

有办法能获取到吗?

阅读 6.4k
5 个回答

看了源码,,发现是没有办法获取到的
所以改了源码一下
具体可以参考这位仁兄的pr
不过实际上面的pr漏了一个地方,我在该pr下面评论了,把漏掉的那个地方补上就可以了

写成:

$('#Game_UI').tap(function(e) {
    console.log(e.clientX + ',' + e.clientY)
})

试试?

打印一下e,具体看哪个子元素是 要的坐标咯

1: 语法有问题 参照 @银翼破碎战魂 说的。。
2: 打印 下 e, touch事件是可以取到值的。。 e.target.pageX e.target.clienX === ,看看你需要哪个

1.首先修改zepto,找到singleTap事件,如图
图片描述
然后在这基础上加一句{touch:touch},也就是改成这样,看加粗部分 touch.el.trigger('singleTap',{touch: touch})。

2.修改完之后,在调用的时候,这样调用,其中_args.touch就是坐标了

$(document).on('tap','.element',function(e){
    var x = e._args.touch.x1,
        y = e._args.touch.y1;
}

图片描述

同样的道理,longTap,doubleTap啊等等,都这这样的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题