• 常用的键盘事件


    1.1常用的键盘事件

    1.1键盘事件

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

    注意: 

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

      三个事件的执行顺序 keydown -> keypress -> keyup
    <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属性判断用户按下哪个键
    <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()
     <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)盒子
     <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>
  • 相关阅读:
    归并排序(非递归)
    centos7.2 安装jenkins2.274
    归并排序
    Jmeter5.4支持TPS测试
    centos下安装rocketmq4.6.1
    Java 8新特性:lambda表达式
    tomcat putty启动
    Linux启动tomcat带控制台
    每个Java开发者都应该知道的5个JDK工具
    强大易用的日期和时间库 线程安全 Joda Time
  • 原文地址:https://www.cnblogs.com/bky-/p/13752458.html
Copyright © 2020-2023  润新知