使用iScroll时查找tap事件的坐标

时间:2015-01-28 22:06:29

标签: cordova coordinates iscroll

我在Phonegap应用中使用iscroll-zoom.js来显示大图像,我想检测用户触摸的任何点的x,y坐标。我无法在Android上进行测试,因为事件对象的pageX和pageY = 0,无论我在哪里点击。

在悲痛之后,我想我能够回答这个问题,因为我最终发现iScroll对象有自己的pointX和pointY属性,这给了我想要的东西。但是:这些属性在线记录在哪里?!严重的是,Google对“iscroll pointX”没有任何用处,更不用说“iscroll tap coordinates”了。

我将在下面发布我的代码,但欢迎您的评论或替代方案,并希望看到我缺少的所有其他iScroll文档的链接。

1 个答案:

答案 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是您滚动/缩放的距离:启动时为零,然后在缩放/移动时变为负值

我不得不减去显示在可滚动图像上方的标题的高度(在别处计算)。