0

我正在寻找有关 Chromium 的最佳实践,它允许我将“拖动”事件或“保持”事件转换为“点击”事件。

我正在构建一个在 TS-7990 触摸屏上运行的触摸屏应用程序,这让我很舒服,主要是因为用户倾向于按某个角度点击按钮,该角度注册为“拖动”事件而不是“点击”事件事件。我为此使用 ExtJS 6.2,但我希望有一个涉及一些 Chromium 开关的解决方案,也许是为了使更改全局化并针对该设备进行全面更改。有任何想法吗?

4

2 回答 2

1

所以,我的发现是我可以用 ExtJS 中的几行代码来解决这个问题。

Ext.define('override.event.gesture.Tap', {
    override: 'Ext.event.gesture.Tap'
}, function (Tap) {
    Tap.instance.setMoveDistance(4000);
});

通过将移动距离设置为 4000,我基本上是在说,“如果您的拖动小于 4000,则将其视为“点击”。以前该值设置为 8 像素。任何笨拙的工程师都可以提供对触摸屏的一击。

于 2017-01-06T17:00:50.333 回答
0

对于您提到的“涉及一些 Chromium 开关”的解决方案,您需要启用 Chromium 的触摸事件,然后将touchmove事件转换为点击事件。

  • 启动时打开铬的触摸事件

    开始铬chromium-browser --touch-events=enabled

    这会为您提供touchstarttouchmovetouchstoptouchcancel事件。请参阅MDN Touch Events以获得很好的解释。

  • 当这些触摸事件存在时,在您的 JavaScript 代码中(可能在 index.html 中)设置一个标志

    var isTouchDevice = 'ontouchstart' in document.documentElement;

  • 当此标志为真时,拦截“拖动”并改为“点击”。这是实现这一目标的一种简单方法:

if (isTouchEvent) {
    document.ontouchmove = function (e) {
        e.target.click();
    }
}

于 2017-07-19T20:16:08.747 回答