我在Phonegap应用中使用iscroll-zoom.js来显示大图像,我想检测用户触摸的任何点的x,y坐标。我无法在Android上进行测试,因为事件对象的pageX和pageY = 0,无论我在哪里点击。
在悲痛之后,我想我能够回答这个问题,因为我最终发现iScroll对象有自己的pointX和pointY属性,这给了我想要的东西。但是:这些属性在线记录在哪里?!严重的是,Google对“iscroll pointX”没有任何用处,更不用说“iscroll tap coordinates”了。
我将在下面发布我的代码,但欢迎您的评论或替代方案,并希望看到我缺少的所有其他iScroll文档的链接。
答案 0 :(得分:0)
这里的代码为我提供了触摸图像的位置的坐标,无论它滚动到何处或缩放到哪里:
document.addEventListener('tap', tap_on_floor_plan, false); setTimeout(function () { myScroll = new IScroll('#wrapper', { zoom: true, scrollX: true, scrollY: true, tap: true, mouseWheel: true, wheelAction: 'zoom' }); }, 100); function tap_on_floor_plan(ev) { var iTapX = Math.round(((myScroll.x * -1) + myScroll.pointX) / myScroll.scale, 0); var iTapY = Math.round(((myScroll.y * -1) + myScroll.pointY - iHeaderTopGap) / myScroll.scale, 0); }
myScroll.pointX是您相对于可见屏幕边缘点击的位置。
myScroll.x是您滚动/缩放的距离:启动时为零,然后在缩放/移动时变为负值
我不得不减去显示在可滚动图像上方的标题的高度(在别处计算)。