其他代码

hotkeys - 捕获键盘输入和输入组合键

阿里云

hotkeys.js 是一款用于捕获键盘输入和输入组合键的 js 库。hotkeys.js 没有依赖,压缩后小于 3kb。hotkeys.js 可以捕获用户的键盘按键或组合键的输入,非常实用。

使用方法:

  1. import React, { Component } from 'react';
  2. import Hotkeys from 'react-hot-keys';
  3.  
  4. export default class HotkeysDemo extends Component {
  5.   constructor(props) {
  6.     super(props);
  7.     this.state = {
  8.       output: 'Hello, I am a component that listens to keydown and keyup of a',
  9.     }
  10.   }
  11.   onKeyUp(keyName, e, handle) {
  12.     console.log("test:onKeyUp", e, handle)
  13.     this.setState({
  14.       output: `onKeyUp ${keyName}`,
  15.     });
  16.   }
  17.   onKeyDown(keyName, e, handle) {
  18.     console.log("test:onKeyDown", keyName, e, handle)
  19.     this.setState({
  20.       output: `onKeyDown ${keyName}`,
  21.     });
  22.   }
  23.   render() {
  24.     return (
  25.       <Hotkeys 
  26.         keyName="shift+a,alt+s"
  27.         onKeyDown={this.onKeyDown.bind(this)}
  28.         onKeyUp={this.onKeyUp.bind(this)}
  29.       >
  30.         <div style={{ padding: "50px" }}>
  31.           {this.state.output}
  32.         </div>
  33.       </Hotkeys>
  34.     )
  35.   }
  36. }
也想出现在这里?联系我们
创客主机

传统方法:

传统方法在页面中 hotkeys.js。

  1. <script type="text/javascript" src="./js/hotkeys.js"></script>

或使用包加载:

  1. import hotkeys from 'hotkeys-js';
  2. hotkeys('shift+a,alt+d, w', function(e){
  3.     console.log('干点活儿',e);
  4.     if(hotkeys.shift) console.log('你按下了 shift 键!');
  5.     if(hotkeys.ctrl) console.log('你按下了 ctrl 键!');
  6.     if(hotkeys.alt) console.log('你按下了 alt 键!');
  7. });

定义快捷键:

  1. // 定义a快捷键
  2. hotkeys('a', function(event,handler){
  3.     //event.srcElement: input 
  4.     //event.target: input
  5.     if(event.target === "input"){
  6.         alert('你在输入框中按下了 a!')
  7.     }
  8.     alert('你按下了 a!') 
  9. });
  10.  
  11. // 定义a快捷键
  12. hotkeys('ctrl+a,ctrl+b,r,f', function(event,handler){
  13.     switch(handler.key){
  14.         case "ctrl+a":alert('你按下了ctrl+a!');break;
  15.         case "ctrl+b":alert('你按下了ctrl+b!');break;
  16.         case "r":alert('你按下了r!');break;
  17.         case "f":alert('你按下了f!');break;
  18.     }
  19.     //handler.scope 范围
  20. });
  21.  
  22. // 返回false将停止活动,并阻止默认浏览器事件
  23. hotkeys('ctrl+r', function(){ alert('停止刷新!'); return false });
  24.  
  25. // 多个快捷方式做同样的事情
  26. hotkeys('⌘+r, ctrl+r', function(){ });
  27.  
  28. // 对所有摁键执行任务
  29. hotkeys('*','wcj', function(e){
  30.     console.log('干点活儿',e);
  31.     console.log("key.getScope()::",hotkeys.getScope());
  32.     if(hotkeys.shift) console.log('你按下了 shift 键!');
  33.     if(hotkeys.ctrl) console.log('你按下了 ctrl 键!');
  34.     if(hotkeys.alt) console.log('你按下了 alt 键!');
  35. });

修饰键判断:

可以对下面的修饰键判断 shift alt option ctrl control command,特别注意+和=键值相同,组合键设置⌘+=。

  1. hotkeys('shift+a,alt+d, w', function(e){
  2.     console.log('干点活儿',e);
  3.     if(hotkeys.shift) console.log('你按下了 shift 键!');
  4.     if(hotkeys.ctrl) console.log('你按下了 ctrl 键!');
  5.     if(hotkeys.alt) console.log('你按下了 alt 键!');
  6. });

关于 hotkeys.js 更多的使用方法请查看官方 github 地址:https://github.com/jaywcjlove/hotkeys/

hotkeys - 捕获键盘输入和输入组合键

已有 567 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!