ak3*_*t0n 10 javascript keypress
我希望能够捕获双键按下(例如Char T)以进行一些特殊处理.我希望按键发生得足够快,不能被解释为两次单独按下,就像双击.任何想法我怎么能实现这一目标?
Sho*_*og9 19
当击中键时,记下时间.然后将它与您上次敲击键时记录的时间进行比较.
如果差异在您的阈值范围内,请将其视为双倍.否则,不要.粗略的例子:
var delta = 500;
var lastKeypressTime = 0;
function KeyHandler(event)
{
if ( String.fromCharCode(event.charCode).toUpperCase()) == 'T' )
{
var thisKeypressTime = new Date();
if ( thisKeypressTime - lastKeypressTime <= delta )
{
doDoubleKeypress();
// optional - if we'd rather not detect a triple-press
// as a second double-press, reset the timestamp
thisKeypressTime = 0;
}
lastKeypressTime = thisKeypressTime;
}
}
Run Code Online (Sandbox Code Playgroud)
Bri*_*say 10
有一个变量(可能first_press),当keypress事件发生时你设置为true,并启动一个计时器,它会在一段时间后将变量重置为false(无论你希望他们按键的速度多快).
在你的按键事件中,如果该变量为真,那么你有一个双按.
例:
var first_press = false;
function key_press() {
if(first_press) {
// they have already clicked once, we have a double
do_double_press();
first_press = false;
} else {
// this is their first key press
first_press = true;
// if they don't click again in half a second, reset
window.setTimeout(function() { first_press = false; }, 500);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10287 次 |
| 最近记录: |