使用 iScroll 时查找点击事件的坐标

Find coordinates of tap event when using iScroll

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

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

我将在下面 post 我的代码,但欢迎您提出意见或替代方案,并希望看到 link 我缺少的所有其他 iScroll 文档。

这是给我触摸图像位置坐标的代码,无论图像滚动到哪里或缩放到哪里:

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 是你的距离 scrolled/zoomed:开始时为零,然后随着你 zoom/move

变得更负

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