我想在我的网站中使用键盘功能键。那么如何在我的网站上实现键盘功能快捷键。谢谢大家......
问问题
1855 次
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 回答