zoukankan      html  css  js  c++  java
  • 常用的键盘事件

    1 键盘事件

        <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>

    2 键盘事件对象

    使用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>

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

    当我们按下 s 键, 光标就定位到搜索框(文本框获得焦点)。

    注意:触发获得焦点事件,可以使用 元素对象.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>

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

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

        <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>

     

  • 相关阅读:
    案例分享:Qt+Arm基于RV1126平台的内窥镜软硬整套解决方案(实时影像、冻结、拍照、录像、背光调整、硬件光源调整,其他产品也可使用该平台,如视频监控,物联网产品等等)
    libzip开发笔记(二):libzip库介绍、ubuntu平台编译和工程模板
    案例分享:Qt西门子机床人机界面以及数据看板定制(西门子通讯,mysql数据库,生产信息,参数信息,信息化看板,权限控制,播放器,二维图表,参数调试界面)
    sshpass 简介
    SSH 协议及 OpenSSH 实现
    Linux从头学07:中断那么重要,它的本质到底是什么?
    Linux从头学06:16张结构图,彻底理解【代码重定位】的底层原理
    Linux从头学05-系统启动过程中的几个神秘地址,你知道是什么意思吗?
    所有编程语言中的栈操作,底层原理都在这里
    WSL2:Windows 亲生的 Linux 子系统
  • 原文地址:https://www.cnblogs.com/llanq123/p/13768895.html
Copyright © 2011-2022 走看看