Javascript 了解何时在屏幕上显示触摸控制
我正在制作一个有左右两个控件的游戏。在桌面上,这些是左右光标键。在没有键盘或主要通过触摸屏进行交互的机器上,我需要显示用户可以用手指按下的按钮 是否有一种方法可以检测何时适合显示这些触摸按钮,何时不适合 考虑的解决办法:Javascript 了解何时在屏幕上显示触摸控制,javascript,html,css,Javascript,Html,Css,我正在制作一个有左右两个控件的游戏。在桌面上,这些是左右光标键。在没有键盘或主要通过触摸屏进行交互的机器上,我需要显示用户可以用手指按下的按钮 是否有一种方法可以检测何时适合显示这些触摸按钮,何时不适合 考虑的解决办法: 检查iPhone/iPad/Android 这涵盖了大多数手机和平板电脑,但当然在其他一些品牌上是错误的 使用css媒体查询悬停和指针 好了,这些没用。手机可能有hover:none和pointer:course,但带触笔的iPad呢。它应该同时允许hover:hover和p
- 检查iPhone/iPad/Android 这涵盖了大多数手机和平板电脑,但当然在其他一些品牌上是错误的
- 使用css媒体查询
和悬停
好了,这些没用。手机可能有指针
和hover:none
,但带触笔的iPad呢。它应该同时允许pointer:course
和hover:hover
使其与桌面无法区分pointer:fine
- 按尺寸核对 看起来很脆弱。平板电脑的尺寸相当大。通常和笔记本电脑一样大
- 检查触摸支持
在许多带有触摸屏的Windows设备上返回trueisTouchDevice = "ontouchstart" in window;
window
对象上的orientation
属性。由于智能手机通常支持此属性,而桌面浏览器则不支持此属性。@RobG,touch support在大多数具有触摸屏的windows台式机/笔记本电脑上不都是真的吗?@Callum,有争议的是,仅仅因为台式电脑上有触摸屏,就用触摸控制来干扰用户的显示,这不是一种好的用户体验。我当然不希望大多数游戏在桌面电脑上显示触摸控制。我可以想象有显示它们的选项,但我仍然认为默认情况下,它们会在桌面上,在手机/平板电脑上。@gman检测触摸是有问题的,但它可能比屏幕大小、方向等更可靠。触摸不仅仅意味着“移动”,为什么支持触摸的桌面用户不想使用它?为什么连着键盘的iPad用户不想使用触摸屏而不是键盘呢?可能会提供基于检测的触摸或光标,但如果用户愿意,可以让用户更改。