javascript - 移动浏览器触摸事件

标签 javascript mobile touch

有没有办法让触摸事件相对于元素而不是视口(viewport)或整个页面?

我有代码,

var c = document.createElement("canvas");
c.width = 100;
c.height = 100;
c.addEventListener('touchmove',function(e){
    de.innerHTML = e.targetTouches[0].clientX + ", " + e.targetTouches[0].clientY;
}, false);

de 只是一个用于输出数据的 div,但 clientX 和 clientY 与该元素无关。有什么办法可以实现吗?

最佳答案

你不能相对于元素,你可以相对于:

  • Viewport(您使用的 clientX、clientY)。
  • 屏幕,它处理缩放(screenX...)
  • 页面,它处理滚动(pageX...)

有关更多信息,请阅读有用的 mobile safari引用指南,和/或 Sitepen's article关于这个话题。 希望这会有所帮助。

关于javascript - 移动浏览器触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6676727/

相关文章:

swift - SpriteKit 记住哪个 Sprite 被触摸

javascript - 使用 JavaScript 检测 iPod 或 Iphone?

javascript - 正确的 ES6 导入以添加力矩精确范围插件

javascript - Web 文本编辑器中的 RTF 格式

html - 开始使用 HTML5 构建移动网站

android - 如何查找 ACTION_MOVE 触摸事件是否在圆形路径上 : Android

javascript - 奇怪的内部循环不执行某些迭代

java - 如何使用分水岭改进图像分割?

javascript - 重置特定表单字段

javascript - iOS Touch 事件在 DOM 插入时传递