0

我想在我的网站中使用键盘功能键。那么如何在我的网站上实现键盘功能快捷键。谢谢大家......

4

3 回答 3

2

使用 Javascript:

// event.type should be keypress
function getChar(event) {
    if (event.which == null) {  // IE
        if (event.keyCode < 32) return null; // special character
            return String.fromCharCode(event.keyCode) 
    } 

    if (event.which != 0 && event.charCode != 0) { // not IE
        if (event.which < 32) return null; // special character
            return String.fromCharCode(event.which); // other
    } 

    return null; // special character
}

对于控制键使用:event.shiftKey、event.ctrlKey、event.altKey 或 event.metaKey。

于 2013-07-22T06:43:25.773 回答
1

很好。如果你不知道 jquery,我建议你先学习 javascript。键盘上存在非常键的键码。您只需要检测按下哪个键的按键,并根据按下的键添加您的游戏功能。 所有按钮的列表

一般-->

document.onkeydown = function(evt) {
    evt = evt || window.event;
    if (evt.keyCode == "any of the above key") {
        alert("some key pressed");
//your functionality goes here!!!
    }
};

为了你想要的-->

$('#someelement').bind('click', function(event){
   if(event.ctrlKey)
      alert('ctrl pressed');
   if(event.altKey)
      alert('alt pressed');
   if(event.shiftKey)
      alert('shift pressed');

});
于 2013-07-22T07:13:28.230 回答
0

如果您愿意使用 jQuery,那么它可能会更简单一些。

为了能够捕获复合键,您必须首先在控制键上查找 keydown 并存储状态。然后在常规键上查找 keydown 并根据存储的状态检查它。一旦有按键,重置控制状态。

这是一个如何执行此操作的示例:

// Bind keyup to document to trap shortcut keys for various operations
$(document).keyup(function (e) {
    IsCtrl = false;
    IsShift = false;
}).keydown(function (e) {

    // first capture Ctrl 
    if (e.which == 17) { IsCtrl = true; }

    // now capture Shift 
    if (e.which == 16) { IsShift = true; }

    switch (e.which) {

        // now capture S and if Ctrl is pressed                                                                                                                                                                                          
        case 83: 
            if (IsCtrl) { alert("Ctrl S pressed");  } 
            if (IsShift) { alert("Shift S pressed");  } 
            e.preventDefault(); 
            break;

        // capture F1                                                                                                                                                                                           
        case 112: alert("Heellllppp!"); e.preventDefault(); break;

        // capture ESC                                                                                                                                                                                           
        case 27: alert("Escape!"); e.preventDefault(); break;
    }
});

其中“ IsCtrl”和“ IsShift”是全局范围内的变量。上面的代码专门检查控制键。如果您想检查更多组合(包括),请更改检查控制键状态的部分。功能键从 112 (f1) 开始。您可以参考@MESSIAH 发布的图表获取其他键码。

希望有帮助。

于 2013-07-22T07:27:05.940 回答