# 键盘事件
# 课程目标
前面我们学习了事件基础知识,今天我们重点掌握键盘事件
# 阅读
JavaScript 键盘事件可帮助捕获用户与键盘的交互.
监听 keydown 和 keyup 事件可以知道当用户在键盘上输入的字符,这样可用于实现键盘快捷键。
keydown 和 keyup 之间的唯一区别是: keydown 在用户开始按下按钮和输入字符之前触发.keyup 在输入字符后触发。
对于大多数情况,您最终需要触发 keyup 事件, 这些事件可以添加到 document 或文本框内(以了解用户何时在页面上的任何位置按下了键)。
document.addEventListener("keydown", (event) => {
console.log(event.key);
});
document.addEventListener("keyup", (event) => {
console.log(event.key);
});
您可以在键盘事件游乐场 (opens new window) 感受一下就按下键盘事件触发,直观看到 event.key 和 event.code 值的键列表。
请阅读下面文档,深入学习键盘事件相关知识:
- 键盘:keydown 和 keyup| JavaScript 现代教程 (opens new window)
- JavaScript 键盘事件简介 (opens new window)
- 键盘事件教程 (opens new window)
- JS 键盘事件 (opens new window)
# 任务一
请你实现一个电话簿检索功能
- 实现检索功能,可以按照名称和电话号码进行搜索,输入一个字符,自动筛选出符合条件的电话簿信息,展示在下方
- 实现检索输入框的过滤,只能输入字母键,数字键,方向键和删除键,如果输入为其他键值,不接受其他按键。
- 搜索应该不区分大小写
实现效果参考下方:
# 任务二
参照如下示例图,实现利用键盘来控制小方块的移动
- 按上键,小方块向上移动,按下键,小方块向下移动,左右键也是一样
- 同时按下 ctrl 键和方向键时,可以加快小方块的移动速度
# 自测问题
- event.key 和 event.code 有什么区别?
- 当按下键盘时,会连续触发多个事件,说说是哪些事件,她们是按什么顺序触发?
- 如果按下字符键不放,哪两个事件会被一直触发?
- 如果按下非字符键不放,有几个事件会被一直触发?是哪些事件?
# 进阶任务
如果你很快就完成上面的任务,可以去 LeetCode 上去多进行一些练习。
# 提交
把你今天觉得做得最好的代码放在 Github 后进行提交。
# 总结
依然把今天的学习用时,收获,问题进行记录。