javascript - 有没有办法明确测试设备是否支持双击?

标签 javascript node.js

我编写了一个游戏,它允许用户配置自己的游戏设置。

其中一个选项是通过双击牌来打出牌。但是,在移动设备上,如果用户选择此选项,游戏就会卡住,因为移动设备上没有双击。

所以我想做的是检测设备是否支持双击,如果支持,那就太好了,但如果它不回退到另一个首选项。

我尝试过一次但失败了。我尝试检测设备是否支持触摸(使用modernizr),但这是错误的,因为有些计算机同时支持双击和触摸,在这种情况下我仍然想让人们双击。 (支持触摸并不是支持双击的对立面)

有没有办法判断浏览器/设备组合是否支持传统的双击?

最佳答案

不,除了提示用户尝试执行操作并检测是否发生单击或双击之外,(目前)还没有用于检测可用输入方法的跨设备标准。

另一方面,您可以尝试使用 Modernizr ( http://modernizr.com/docs/ ) 等检测库来检测您是否使用触摸设备,然后从检测实际双击切换到检测某个频率内的点击。这看起来像下面这样:

var d = new Date();
var lastClick = d.getTime();
var clickDelay = 500; //half second
if(Modernizr.touch){
body.click(function(){
  var currentClick = d.getTime();
  if(currentClick - lastClick < clickDelay){
  lastClick = 0; //prevent tripleclick from registering
  //doubleclick detected, do something
  }
});
} else /*use your current doubleclick detection*/ {
//do something
}

我也过于简单化了,因为在这个示例中,您希望检测触摸事件而不是点击,但这应该给出总体思路。

关于javascript - 有没有办法明确测试设备是否支持双击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21489210/

相关文章:

javascript - Nodejs 数百个坐标之间的距离计算阻塞了我的服务器

javascript - Grunt 不加载外部任务

javascript - nestjs 错误处理方法是什么(业务逻辑错误 vs. http 错误)?

javascript - 通过 http 向客户端发送文件时在 http header 中指定文件名

javascript - react.js - 处理固定页眉和页脚的 React-router

javascript - 将参数传递给 jest 函数

javascript - 动态创建的 iframe 的 contentWindow 未定义

javascript - 如何检查数据库是否需要身份验证

Node 中的 JavaScript 字符串比较失败

node.js - 如何正确使用Nest.js的@Headers?