Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 了解何时在屏幕上显示触摸控制_Javascript_Html_Css - Fatal编程技术网

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
    pointer:course
    ,但带触笔的iPad呢。它应该同时允许
    hover:hover
    pointer:fine
    使其与桌面无法区分

  • 按尺寸核对

    看起来很脆弱。平板电脑的尺寸相当大。通常和笔记本电脑一样大

  • 检查触摸支持

    isTouchDevice = "ontouchstart" in window;
    
    在许多带有触摸屏的Windows设备上返回true


为什么不进行测试?这一点解释得很清楚。在这种情况下,我要做的是,检查
window
对象上的
orientation
属性。由于智能手机通常支持此属性,而桌面浏览器则不支持此属性。@RobG,touch support在大多数具有触摸屏的windows台式机/笔记本电脑上不都是真的吗?@Callum,有争议的是,仅仅因为台式电脑上有触摸屏,就用触摸控制来干扰用户的显示,这不是一种好的用户体验。我当然不希望大多数游戏在桌面电脑上显示触摸控制。我可以想象有显示它们的选项,但我仍然认为默认情况下,它们会在桌面上,在手机/平板电脑上。@gman检测触摸是有问题的,但它可能比屏幕大小、方向等更可靠。触摸不仅仅意味着“移动”,为什么支持触摸的桌面用户不想使用它?为什么连着键盘的iPad用户不想使用触摸屏而不是键盘呢?可能会提供基于检测的触摸或光标,但如果用户愿意,可以让用户更改。