【问题标题】:chrome iOS touchmove event not workingchrome iOS touchmove 事件不起作用
【发布时间】:2014-05-07 09:36:19
【问题描述】:

我在 iOS 上的 safari 中有以下工作,但在 iOS 上的 chrome 中它似乎没有工作。事实上,浏览器会滚动,所以我认为 e.preventDefault 没有起到作用。

canvas.addEventListener("touchmove", trackPositionTouch, true);

function trackPositionTouch(e) {
    e.preventDefault();
    mouse.x = e.targetTouches[0].pageX - canvas.offsetLeft;
    mouse.y = e.targetTouches[0].pageY - canvas.offsetTop;
}

【问题讨论】:

  • 使用 touches[0] 而不是 targetTouches[0]
  • @singhiskng 刚试过,没区别
  • Chrome 也有同样的问题。您自己找到解决方案了吗?

标签: javascript ios google-chrome canvas


【解决方案1】:

最好同时检查这两种事件类型。这就是我在一个项目中的做法。我正在使用 jQuery 来选择 DOM 元素。

var touch = e.originalEvent.touches[0] || e.originalEvent.targetTouches[0];

var parentOffset = $(this).parent().offset();

var relX = (touch.pageX - parentOffset.left);
var relY = (touch.pageY - parentOffset.top);

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多