我写了一个游戏,它允许用户配置自己的游戏设置。
其中一个选项是通过双击来播放卡片。但是,在移动设备上,如果用户选择此选项,则游戏会因为没有双击移动设备而卡住。
所以我想做的是检测一个设备是否支持双击,如果它支持双击,那么很好,但如果它不会回归到另一个偏好。
我尝试了一次而失败了。我尝试检测设备是否支持触摸(使用modernizr),但这是错误的,因为有些计算机同时支持双击和触摸,在这种情况下我想让人们双击。 (支持触摸不支持双击)
有没有办法判断浏览器/设备组合是否支持传统的双击?
答案 0 :(得分:0)
不,除了提示用户尝试执行操作并检测是否发生单击或双击之外,还没有(用于)检测可用输入方法的交叉设备标准。
另一方面,您可以尝试使用像Modernizr(http://modernizr.com/docs/)这样的检测库来检测您是否在 touch 设备上,然后从检测和实际开始双击以检测频率内的点击次数。这看起来如下所示:
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
}
我也过于简单化,因为在这个例子中你会想要检测触摸事件而不是点击,但这应该给出一般的想法。