如何在浏览器中禁用轻弹行为? (Chrome/Firefox)

How can I disable flick behavior in a browser? (Chrome/Firefox)

在 windows.

中的应用程序中,轻击是可以用手写笔或手指触发的手势,用于后退、前进、向下或向上滚动

http://windows.microsoft.com/en-us/windows7/what-are-flicks

在我的网络应用程序中,我使用 HTML5 canvas 来捕获要绘制的鼠标事件。在 Microsoft Surface(启用了轻弹)中,由于轻弹,mousedown 事件被延迟并且几个 mousemoves 被忽略并且没有传输到 web 应用程序。此外,有时,由于轻弹操作,用户会 back/forward/scrolls up/down。

这是本期的 repro/description/screenshot: https://github.com/jogonzal/MinimalisticFlickDelayRepro

解决方法是在 Chrome 或 Firefox 中禁用轻弹手势 - 这意味着 Firefox/Chrome windows 应用程序中的 代码更改为:

  • 完全关闭它(首选,这是 IE 和 Edge 所做的)
  • 允许开发人员通过 CSS/Javascript
  • 关闭此功能

选项1使用TABLET_DISABLE_FLICKS(推荐,github上有很多例子,IE和Edge就是这样做的)

(C++): 如本文所述禁用笔势: https://msdn.microsoft.com/en-us/library/dd562171(v=VS.85).aspx 代码示例 https://github.com/jonathanhook/Waves/blob/bc5a3c9a8a2c8574b28174e25650753237bc8cd2/Source/MultiTouchEvents/WMTouchEventSource.cpp

(C#): 代码示例 https://github.com/leowangzi/DanielLib/blob/6aaae88bd9ec9ae91da35fa3bdcd280f2c701e64/DanielLib.TouchAppTemplate/Touchtech.Surface.Community/TabletUtil.cs

选项 2 回复 WM_TABLET_QUERY_SYSTEM_GESTURE_STATUS

https://msdn.microsoft.com/en-us/library/windows/desktop/ms699430(v=vs.85).aspx