HTML5 画布,防手掌误触

Posted

技术标签:

【中文标题】HTML5 画布,防手掌误触【英文标题】:HTML5 canvas, palm rejection 【发布时间】:2015-05-27 19:58:31 【问题描述】:

我们正在尝试将 html5 画布与平板电脑触控笔一起使用,但我们遇到了多点触控平板电脑的手掌触摸问题。当一个人试图画一些东西并用手掌触摸显示表面时,由于多点触控会出现线条。

您知道如何通过js或canvas选项在平板电脑上禁用多点触控吗,或者您知道是否有html5 canvas手掌拒绝技术。

【问题讨论】:

【参考方案1】:

当前浏览器中提供了一些较新的 Web API。特别是,touch event 中的touches 的radiusX 和radiusY 可用于计算触摸区域。比手指或触控笔大的区域可以忽略不计。

【讨论】:

【参考方案2】:

防手掌误触功能必须在浏览器本身或平板电脑的操作系统中实现。在 HTML5 和 javascript 中,无法知道触及画布的“手指”有多大。

Palm Rejection 适用于配备专用触控笔的平板电脑,例如 Galaxy Note 系列。

关于禁用多点触控功能: 浏览器无法知道哪个触点属于触控笔,哪个属于您的手掌。

【讨论】:

也许这是一个非常令人失望的答案。但我自己一直在解决这个问题,我们认为最有效的解决方案是购买 Galaxy Note Pro 12。 我们找到了适用于 Galaxy Tab 手写笔 S Pen 的东西。用S Pen触摸屏幕,查看js触摸事件,我们发现radiusX和radiusY都是0,但是当你用手掌或手指触摸时,它们的值>0。这可以帮助你 但是使用 s pen 无论如何你都会自动拒绝手掌。所以你不必用javascript来实现它

以上是关于HTML5 画布,防手掌误触的主要内容,如果未能解决你的问题,请参考以下文章

HTML5怎样创建画布?

将 HTML5 画布转换为 IMG 元素

html5中怎么根据内容高低来调整画布大小

HTML5怎样创建画布?

HTML5 响应式画布:调整浏览器画布绘制的大小消失

如何旋转 HTML5 画布的现有内容?