如何在浏览器中禁用轻弹行为? (镀铬/火狐)

时间:2016-04-26 23:10:45

标签: javascript html5 google-chrome firefox stylus-pen

轻弹是可以用手写笔或手指触发的手势,可以在Windows中的应用中向后,向前,向下或向上滚动。

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

在我的网络应用程序中,我使用HTML5画布捕获要绘制的鼠标事件。在Microsoft Surface(启用了轻拂)中,由于轻拂,mousedown事件被延迟,并且几个鼠标移动被忽略并且不会传输到Web应用程序。此外,有时,由于轻弹动作,用户向后/向前/向上/向下滚动。

这是此问题的重复/说明/屏幕截图: https://github.com/jogonzal/MinimalisticFlickDelayRepro

1 个答案:

答案 0 :(得分:0)

修复方法是禁用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