最简易的按键组合:

A => 触发a

B => 触发b

A+B => 触发a+b
松开 B => 不触发b,a继续触发
再按下 B => 触发b,持续触发a+b

代码如下:

class Timer {
  constructor(name) {
    this.$name = name;
    this.$timer = null;
  }
  start() {
    this.$timer = setInterval(() => {
      console.log(this.$name, Date.now());
    }, 100);
  }
  end() {
    if (this.$timer) {
      clearInterval(this.$timer);
      this.$timer = null;
    }
  }
}
var keys = {};
document.addEventListener("keydown", (event) => {
  if (keys[event.key]) return;
  keys[event.key] = new Timer(event.key);
  keys[event.key].start();
});
document.addEventListener("keyup", (event) => {
  if (!keys[event.key]) return;
  keys[event.key].end();
  delete keys[event.key];
});

逻辑来源,前端小武!

最简易的js的按键组合相关推荐

  1. js检测键盘组合键,禁止F12

    js检测键盘组合键ctrl+p js检测键盘组合键ctrl+d js检测键盘组合键ctrl+s js禁止F12 体验地址:点击在线体验 <!DOCTYPE html> <html l ...

  2. js控制键盘按键(回车、空格)

    js控制键盘按键(回车.空格) <script type="text/javascript">$(function(){ $(document).keypress(fu ...

  3. JS偏函数、组合函数、缓存函数

    JS偏函数.组合函数.缓存函数 一.JavaScript代码 [附件]/functools.js (function( window ) { "use strict"; var f ...

  4. linux暂停进程运行的按键组合是,Linux基础命令(五):进程——ps、top、jobs、bg、fg、kill、killall、shutdown...

    目录 进程 查看进程 用 top 命令动态查看进程(相当于任务管理器) 中断进程 把进程放置到后台执行 进程返回到前台执行 (暂时)停止进程 信号 通过kill命令给进程发送信号 通过 killall ...

  5. node js 写按键精灵_带有按键的Node.js Raw模式

    node js 写按键精灵 I find the stuff that people are doing with Node.js incredibly interesting.  You here ...

  6. 【python】70行代码,实现 GTA侠盗猎车 按键组合触发 作弊码。附源码 及 效果图

    [python]实现GTA侠盗猎车通过按键组合触发作弊码 引言 实现效果 代码 源码下载链接 引言 众所周知,GTA中的作弊码不需要输入框. 只需要通过键盘输入特定的组合,即可触发效果. 实现效果 任 ...

  7. 猿人学题库第二题——简易动态js加密解析

    猿人学题库第二题--简易动态js加密解析 1.  首先 进入 浏览器的开发者工具, 进入后会有个无线debugger,过掉无线debugger模式,鼠标右击 选择 never pause here,过 ...

  8. js数组随机排列组合

    js数组随机排列组合 function combine(i, results, res) {//排列组合var wordList = [[1,2],[3,4]]if(wordList.length = ...

  9. 【JS继承】JS继承之组合继承

    自我介绍:大家好,我是吉帅振的网络日志:微信公众号:吉帅振的网络日志:前端开发工程师,工作4年,去过上海.北京,经历创业公司,进过大厂,现在郑州敲代码. JS继承专栏 1[JS继承]什么是JS继承? ...

最新文章

  1. 腾讯最大股东收购了 Stack Overflow,以后“抄代码”都要付费了么?
  2. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online
  3. 关于C++/C中符号
  4. ideaspringboot项目上传服务器_nuxt+pm2 自动化部署及打包后文件自动上传阿里云 oss
  5. 一点关于cloze-style问题的简谈
  6. 什么是数字孪生?有哪些关键能力?
  7. 面向对象设计原则与设计模式
  8. Java基本语法-----java标识符
  9. 操作系统如何恢复到原先状态
  10. pycharm中配置Git教程
  11. ibm刀箱服务器型号查询,IBM 服务器模块 刀箱模块
  12. Android 5.1-7.1 高通驱动修改 - 上篇
  13. python清理数据
  14. 腾讯云弹性MapReduce
  15. 个人第一次作业:阅读与准备作业
  16. 自然语言处理——中英文分词工具(还可做词性标注与命名实体识别)
  17. 文本分类(TFIDF/朴素贝叶斯分类器/TextRNN/TextCNN/TextRCNN/FastText/HAN)
  18. nginx配置tcp转发
  19. html5 css js前端开发五子棋UI篇--基于慕课网五子棋视频教程的随笔
  20. PHP web表单生成器(函数部分)的理解

热门文章

  1. 交通模拟仿真平台指南(含数据说明)
  2. 深度学习(Deep Learning)
  3. LBS找外贸客户 外贸怎么找客户
  4. Visual Studio2022安装教程
  5. 単語ーー下げる(さげる)
  6. memcache set操作详解
  7. MapSet哈希桶(基础+常用方法总结)
  8. SIGSEGV(SEGV_MAPERR)
  9. 《大数据面试题》面试大数据这一篇就够了
  10. CV学习笔记-VGG