Chromium如何转换拖动和/或按住单击?

时间:2017-01-04 23:37:58

标签: javascript extjs chromium touchscreen extjs6-modern

我正在寻找关于Chromium的 最佳做法 ,这样我就可以将“拖动”事件或“暂停”事件转换为“点击“活动。

我正在构建一个在TS-7990触摸屏上运行的触摸屏应用程序,主要是因为用户倾向于按一个角度按下按钮,这个角度记录为“拖动”事件而不是“点击”事件。我正在使用ExtJS 6.2,但我希望有一个涉及一些Chromium开关的解决方案,也许是为了使这些设备的全局和扫描更改。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

通过将移动距离设置为4000,我基本上会说,"如果你的阻力小于4000,则将其视为"点击"。以前该值设置为8像素。任何火腿吝啬的工程师都能够对触摸屏进行瞥视。

答案 1 :(得分: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();
    }
}