所以我试图找到用户按下T键和释放键之间的时间。我到处寻找,但我还没有找到一个有效的解决方案。各种解决方案返回数字,但不是正确的数字。这是我的javascript:
var ky;
var start;
var end;
function keydown(e){
ky = e.keyCode;
if(ky==84){
start = +new Date();
}
}
function keyup(e){
ky = e.keyCode;
if(ky==84){
end = +new Date();
alert(end - start);
}
}
在body标签中我有onkeydown =“keydown(event)”onkeyup =“keyup(event)”
而不是返回keydown和keyup之间的毫秒,而是给我一个大约20到200之间的数字。我不能真正给你整个代码,因为它包含很多其他不属于它的代码keyup和keydown
答案 0 :(得分:1)
我不确切地知道你要做什么,但如果按住按键的时间长于自动重复时间(通常约为500毫秒),则自动重复可能会弄乱你的时间。您可以使用以下代码解决自动重复:
var start = 0;
function processKeyDown(e) {
if (!start) {
start = (new Date()).getTime();
}
}
function processKeyUp(e) {
var delta = (new Date()).getTime() - start;
document.getElementById("time").innerHTML = delta + " ms";
start = 0;
}
您可以在此处查看:http://jsfiddle.net/jfriend00/AveZP/