前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >常用的键盘事件

常用的键盘事件

作者头像
梨涡浅笑
发布于 2022-05-08 07:22:21
发布于 2022-05-08 07:22:21
3.2K00
代码可运行
举报
文章被收录于专栏:全栈自学笔记全栈自学笔记
运行总次数:0
代码可运行

1.1常用的键盘事件

1.1键盘事件

事件除了使用鼠标触发,还可以使用键盘触发, 注意给文档 document 添加键盘事件

注意: 

  onkeypress 和前面2个的区别是,它不识别功能键,比如左右箭头,shift 等。

  三个事件的执行顺序 keydown -> keypress -> keyup

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
        // 常用的键盘事件
        //1. keyup 按键弹起的时候触发 
        document.addEventListener('keyup', function() {
            console.log('我弹起了');
        })

        //3. keypress 按键按下的时候触发  不能识别功能键 比如 ctrl shift 左右箭头啊
        document.addEventListener('keypress', function() {
                console.log('我按下了press');
        })
        //2. keydown 按键按下的时候触发  能识别功能键 比如 ctrl shift 左右箭头啊
        document.addEventListener('keydown', function() {
                console.log('我按下了down');
        })
        // 4. 三个事件的执行顺序  keydown -- keypress -- keyup
    </script>

1.2 键盘事件对象

注意:  

      1. 我们的keyup 和 keydown 事件不区分大小写 a 和 A 得到的都是65

      2.我们的keypress 事件区分大小写  a 97 和 A 得到的是65

   3.onkeydown 和 onkeyup  不区分字母大小写,onkeypress 区分字母大小写。

   4.键盘事件对象中的keyCode属性可以得到相应键的ASCLL码值

使用keyCode属性判断用户按下哪个键

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
        // 键盘事件对象中的keyCode属性可以得到相应键的ASCII码值
        document.addEventListener('keyup', function(e) {
            console.log('up:' + e.keyCode);
            // 我们可以利用keycode返回的ASCII码值来判断用户按下了那个键
            if (e.keyCode === 65) {
                alert('您按下的a键');
            } else {
                alert('您没有按下a键')
            }
        })
        document.addEventListener('keypress', function(e) {
            // console.log(e);
            console.log('press:' + e.keyCode);
        })
    </script>

1.3 案例:模拟京东按键输入内容

当我们按下 s 键, 光标就定位到搜索框

案例分析

  核心思路: 检测用户是否按下了 s 键,就把光标定位找到搜索框里面

       使用键盘事件对象里面的keyCode 判断用户是否按下了S 键

       搜索框获得焦点:使用js里面的focus()方法

注意:触发获得焦点事件,可以使用 元素对象.focus()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <input type="text">
    <script>
        // 获取输入框
        var search = document.querySelector('input');
        // 给document注册keyup事件
        document.addEventListener('keyup', function(e) {
            // 判断keyCode的值
            if (e.keyCode === 83) {
                // 触发输入框的获得焦点事件
                search.focus();
            }
        })
    </script>

1.4 案例:模拟京东快递单号查询

要求:当我们在文本框中输入内容时,文本框上面自动显示大字号的内容。

案例分析

  快递单号输入内容时, 上面的大号字体盒子(con)显示(这里面的字号更大)

       表单检测用户输入: 给表单添加键盘事件

       同时把快递单号里面的值(value)获取过来赋值给 con盒子(innerText)做为内容

       如果快递单号里面内容为空,则隐藏大号字体盒子(con)盒子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <div class="search">
        <div class="con">123</div>
        <input type="text" placeholder="请输入您的快递单号" class="jd">
    </div>
    <script>
        // 获取要操作的元素
        var con = document.querySelector('.con');
        var jd_input = document.querySelector('.jd');
        // 给输入框注册keyup事件
        jd_input.addEventListener('keyup', function() {
                // 判断输入框内容是否为空
                if (this.value == '') {
                    // 为空,隐藏放大提示盒子
                    con.style.display = 'none';
                } else {
                    // 不为空,显示放大提示盒子,设置盒子的内容
                    con.style.display = 'block';
                    con.innerText = this.value;
                }
            })
        // 给输入框注册失去焦点事件,隐藏放大提示盒子
        jd_input.addEventListener('blur', function() {
                con.style.display = 'none';
            })
        // 给输入框注册获得焦点事件
        jd_input.addEventListener('focus', function() {
            // 判断输入框内容是否为空
            if (this.value !== '') {
                // 不为空则显示提示盒子
                con.style.display = 'block';
            }
        })
    </script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1常用的键盘事件
    • 1.1键盘事件
    • 1.2 键盘事件对象
    • 1.3 案例:模拟京东按键输入内容
    • 1.4 案例:模拟京东快递单号查询
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档