js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入
設(shè)置快捷鍵
這是一個強健的 Javascript 庫用于捕獲鍵盤輸入和輸入的組合鍵,它沒有依賴,壓縮只有只有(~3kb)。
hotkeys on Github
hotkeys預(yù)覽
創(chuàng)建
您將需要在您的系統(tǒng)上安裝的 Node.js。
# bower 安裝 $ bower install hotkeysjs# npm 安裝 $ npm install hotkeys-js# 在頁面上引用需要壓縮的話,運行 $ grunt dist# 在dist目錄中生成下列文件: # dist/hotkeys.js # dist/hotkeys.min.js # dist/hotkeys.min.map定義快捷鍵
// 定義a快捷鍵 hotkeys('a', function(event,handler){//event.srcElement: input //event.target: inputif(event.target === "input"){alert('你在輸入框中按下了 a!')}alert('你按下了 a!') });// 定義a快捷鍵 hotkeys('ctrl+a,ctrl+b,r,f', function(event,handler){switch(handler.key){case "ctrl+a":alert('你按下了ctrl+a!');break;case "ctrl+b":alert('你按下了ctrl+b!');break;case "r":alert('你按下了r!');break;case "f":alert('你按下了f!');break;}//handler.scope 范圍 });// 返回false將停止活動,并阻止默認瀏覽器事件 hotkeys('ctrl+r', function(){ alert('停止刷新!'); return false });// 多個快捷方式做同樣的事情 hotkeys('?+r, ctrl+r', function(){ });// 對所有摁鍵執(zhí)行任務(wù) hotkeys('*','wcj', function(e){console.log('干點活兒',e);console.log("key.getScope()::",hotkeys.getScope());if(hotkeys.shift) console.log('大哥你摁下了 shift 鍵!');if(hotkeys.ctrl) console.log('大哥你摁下了 ctrl 鍵!');if(hotkeys.alt) console.log('大哥你摁下了 alt 鍵!'); });支持的鍵
?, shift, option, ?, alt, ctrl, control, command, ?。
? Command(?)
? Control
? Option(alt)
? Shift
? Caps Lock(大寫)
fn 功能鍵就是fn(不支持)
?? return/Enter
space 空格鍵
修飾鍵判斷
可以對下面的修飾鍵判斷 shift alt option ctrl control command
hotkeys('shift+a,alt+d, w', function(e){console.log('干點活兒',e);if(hotkeys.shift) console.log('大哥你摁下了 shift 鍵!');if(hotkeys.ctrl) console.log('大哥你摁下了 ctrl 鍵!');if(hotkeys.alt) console.log('大哥你摁下了 alt 鍵!'); });切換快捷鍵
如果在單頁面在不同的區(qū)域,相同的快捷鍵,干不同的事兒,之間來回切換。O(∩_∩)O !
// 一個快捷鍵,有可能干的活兒不一樣哦 hotkeys('ctrl+o, ctrl+alt+enter', 'issues', function(){console.log('干點活兒'); }); hotkeys('o, enter', 'files', function(){ console.log('另一種活兒'); });// 設(shè)定范圍scope hotkeys.setScope('issues'); // 默認所有事兒都干哦刪除標記快捷鍵
刪除區(qū)域范圍標記
hotkeys.deleteScope('issues');解除綁定
hotkeys.unbind("ctrl+o, ctrl+alt+enter") 解除綁定兩組快捷鍵
hotkeys.unbind("ctrl+o","files") 解除綁定名字叫files鐘的一組快捷鍵
鍵判斷
判斷摁下的鍵是否為某個鍵
hotkeys('a', function(){console.log(hotkeys.isPressed("A")); //=> trueconsole.log(hotkeys.isPressed(65)); //=> true });獲取摁下鍵值
獲取摁下綁定鍵的鍵值 hotkeys.getPressedKeyCodes()
hotkeys('command+ctrl+shift+a,f', function(){console.log(hotkeys.getPressedKeyCodes()); //=> [17, 65] 或者 [70] })過濾
INPUT SELECT TEXTAREA 默認不處理。
hotkeys.filter 返回 true 快捷鍵設(shè)置才會起作用,flase 快捷鍵設(shè)置失效。
兼容模式
var k = hotkeys.noConflict(); k('a', function() {console.log("這里可以干一些事兒") });hotkeys() // -->Uncaught TypeError: hotkeys is not a function(anonymous function) // @ VM2170:2InjectedScript._evaluateOn // @ VM2165:883InjectedScript._evaluateAndWrap // @ VM2165:816InjectedScript.evaluate @ VM2165:682總結(jié)
以上是生活随笔為你收集整理的js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RubyMotion 指南:API 驱动
- 下一篇: 【译】为什么这样宏定义#define I