当前位置: 首页 > article >正文

vue3监听键盘长按

需要 如果键盘长按上下左右 则执行一定操作
我是封装一个hooks

import { onMounted, onUnmounted } from 'vue';

export const useLongPress = (keyCode: number, callback: any, delay = 100) => {
  let timer: any = null;

  const startLongPress = (event: any) => {
    if (event.keyCode !== keyCode) return;

    if (!timer) {
      timer = setTimeout(() => {
        callback();
        timer = null;
      }, delay);
    }
  };

  const endLongPress = (event: any) => {
    if (event.keyCode !== keyCode) return;

    if (timer) {
      clearTimeout(timer);
      timer = null;
    }
  };

  onMounted(() => {
    window.addEventListener('keydown', startLongPress);
    window.addEventListener('keyup', endLongPress);
  });

  onUnmounted(() => {
    window.removeEventListener('keydown', startLongPress);
    window.removeEventListener('keyup', endLongPress);
  });
};

然后再使用的地方

import { useLongPress } from '@/hooks/useLongPress';


// 键盘长按
useLongPress(KeyCode.up, () => {
  handleDirection('up');
});

注意
window.addEventListener(‘keydown’, startLongPress); 是代表只要一直按着就会触发startLongPress事件,但是这个出发的频率取决于我们操作系统键盘设置中的键重复速率来决定
设置方法是
Windows: 打开控制面板,选择 “键盘”,在弹出的窗口中,你可以更改 “字符重复” 下的 “重复延迟” 和 “重复速率”。
macOS: 打开 “系统偏好设置”,然后选择 “键盘”,在这里你可以更改 “按键重复” 和 “重复前的延迟”。
Linux/Ubuntu: 打开 “设置”,找到 “设备” 下的 “键盘”,点击 “重复键” 标签,然后你可以更改 “重复延迟” 和 “重复速度”。


http://www.kler.cn/a/286652.html

相关文章:

  • JS面相对象小案例:自定义安全数组
  • Spring集成Redis|通用Redis工具类
  • vue3 获取百度天气
  • SQL基础、函数、约束(MySQL第二期)
  • Linux命令行配置网络代理
  • 日志收集Day005
  • flutter之image_picker上传图片
  • 小琳Python课堂:Python优先级队列深入解析:`PriorityQueue`类的使用与原理
  • 访问win10共享文件夹:用户或密码不正确 以及 未授予用户在此计算机上的请求登录类型
  • 数据库课程设计:MySQL的应用与实践
  • Vue 3 Composition API 中如何正确添加表单项副本到数组
  • Spring Cloud Alibaba 快速学习之 Gateway
  • Vue59 github案例 vue-resource版本
  • Linux——nginx 负载均衡
  • 用Python实现时间序列模型实战——Day 3: 时间序列数据预处理
  • 经验笔记:理解中间件及其在软件开发中的应用
  • 通过python 操作mysql 脚本
  • 『功能项目』怪物受击后显示受击状态UI【12】
  • 通义说【线性代数】线性方程组和线性代数的关系
  • LeetCode - 11 盛最多水的容器
  • nrm|npm快速切源
  • 旅行追踪和行程规划工具AdventureLog
  • 基于微信小程序的挂号管理系统-小程序端
  • 【工具】bash、zsh的切换,使用oh-my-zsh修改颜色主题
  • 集成电路学习:什么是GUI图形用户界面
  • Colly官方文档入门教程