2013-04-04 78 views
5

我有一台带24英寸触摸屏的Ubuntu机器,它工作正常,我可以移动鼠标,用几个触摸点做手势,因此硬件工作正常。想知道是否可以让浏览器将事件解释为触摸而不是mousedown,mousedrag等.HTML5对触摸和多点触控提供了非常好的支持,并且我想为此设置开发Web应用程序。如何做到这一点?我试图使--enable-触摸事件,但没有成功切换。寿看来,这只是在微软Windows版本中实现。从触摸屏在Chrome中触摸事件

~$ xinput -version 
xinput version 1.6.0 
XI version on server: 2.2 

~$ xinput 
⎡ Virtual core pointer      id=2 [master pointer (3)] 
⎜ ↳ Virtual core XTEST pointer    id=4 [slave pointer (2)] 
⎜ ↳ Advanced Silicon S.A CoolTouch(TM) System id=9 [slave pointer (2)] 
⎜ ↳ USBest Technology SiS HID Touch Controller id=10 [slave pointer (2)] 
⎜ ↳ Logitech USB Optical Mouse    id=11 [slave pointer (2)] 
⎜ ↳ MCE IR Keyboard/Mouse (nuvoton-cir)  id=14 [slave pointer (2)] 
⎣ Virtual core keyboard      id=3 [master keyboard (2)] 
    ↳ Virtual core XTEST keyboard    id=5 [slave keyboard (3)] 
    ↳ Power Button        id=6 [slave keyboard (3)] 
    ↳ Video Bus         id=7 [slave keyboard (3)] 
    ↳ Power Button        id=8 [slave keyboard (3)] 
    ↳ CHICONY HP Basic USB Keyboard    id=12 [slave keyboard (3)] 
    ↳ Nuvoton w836x7hg Infrared Remote Transceiver id=13 [slave keyboard (3)] 

我读过有关建筑与触摸UI标志,但IM不舒服它会有帮助吗?

回答

2

Chrome使用GTK构建时,不支持Linux上的触摸屏。从Chrome 35开始,Linux不再使用GTK,而是构建在Windows和ChromeOS上使用的相同UI框架(“Aura”)上。这意味着它现在应该可以正确支持触摸屏了(尽管我经常看到Ubuntu中的触摸屏错误 - 尤其是使用多个显示器时)。

1

请参阅 http://www.html5rocks.com/en/mobile/touchandmouse/ 为您的问题的良好答案。

你说

我试图使--enable-触摸事件切换

你启动Chrome会使用命令行开关?

也许你指的是以下内容,因为你希望接收真实的触摸事件,所以在你的情况下使用它并不是错误的。

https://developers.google.com/chrome-developer-tools/docs/mobile-emulation#emulate-touch-events

尝试在JavaScript控制台安装你有兴趣(见下文)的任何事件类型有点事件处理试验。

["click", "mousemove", "touchmove"].forEach(function(value, index, object) { 
    document.addEventListener(value, function(event) { 
     console.log(JSON.stringify([event.type, 
      event.srcElement.localName + (event.srcElement.id ? '#' 
      + event.srcElement.id : "") 
      + (event.srcElement.classList.length ? '[class=' 
      + event.srcElement.classList + ']' : ""), 
      (new Date(event.timeStamp)).toJSON()])); 
    }, false); 
}); 

这有帮助吗?

+0

啊,https://code.google.com/p/chromium/issues/detail?id=138195似乎回答了我关于--enable-touch-events的问题。 – stackunderflow 2013-05-03 14:21:18