我编写了一个游戏,它允许用户配置自己的游戏设置。
其中一个选项是通过双击牌来打出牌。但是,在移动设备上,如果用户选择此选项,游戏就会卡住,因为移动设备上没有双击。
所以我想做的是检测设备是否支持双击,如果支持,那就太好了,但如果它不回退到另一个首选项。
我尝试过一次但失败了。我尝试检测设备是否支持触摸(使用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/