使用 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 的高度(在别处计算)。
我在 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 的高度(在别处计算)。