常用的键盘事件

这篇具有很好参考价值的文章主要介绍了常用的键盘事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、键盘事件

键盘事件 触发条件
onkeyup 某个键盘按键被松开时触发
onkeydown 某个键盘按键被按下时触发
onkeypress 某个键盘按键被按下时触发(但它不识别功能键,比如ctrl、shift等)

注意:

  • 如果使用addEventListener不需要加on
  • onkeypress和前面2个的区别是,他不识别功能键,比如左右箭头、shift等。
  • 三个事件的执行顺序是:keydown -- keypress -- keyup
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        // 常用的键盘事件
        //1. keyup 按键弹起的时候触发 
        // document.onkeyup = function() {
        //         console.log('我弹起了');

        //     }
        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>
</body>

</html>

2、键盘事件对象

键盘事件对象属性 说明
keyCode 返回该键的ASCII值

注意:

  • onkeydown 和 onkeyup 不区分字母大小写,onkeypress 区分字母大小写
  • 在我们实际开发中,我们更多的使用keydown和keyup,它能识别所有的键(包括所有功能键)
  • keypress 不识别功能键,但是keyCode属性区分大小写,返回不同的ASCII值
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        // 键盘事件对象中的keyCode属性可以得到相应键的ASCII码值
        // 1. 我们的keyup 和keydown事件不区分字母大小写  a 和 A 得到的都是65
        // 2. 我们的keypress 事件 区分字母大小写  a  97 和 A 得到的是65
        document.addEventListener('keyup', function(e) {
            // console.log(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>
</body>

</html>

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

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

常用的键盘事件

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

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <input type="text">
    <script>
        // 核心思路: 检测用户是否按下了s 键,如果按下s 键,就把光标定位到搜索框里面
        // 使用键盘事件对象里面的keyCode 判断用户按下的是否是s键
        // 搜索框获得焦点: 使用 js 里面的 focus() 方法
        var search = document.querySelector('input');
        document.addEventListener('keyup', function(e) {
            // console.log(e.keyCode);
            if (e.keyCode === 83) {
                search.focus();
            }
        })
    </script>
</body>

</html>

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

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

常用的键盘事件文章来源地址https://www.toymoban.com/news/detail-491366.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .search {
            position: relative;
            width: 178px;
            margin: 100px;
        }
        
        .con {
            display: none;
            position: absolute;
            top: -40px;
            width: 171px;
            border: 1px solid rgba(0, 0, 0, .2);
            box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
            padding: 5px 0;
            font-size: 18px;
            line-height: 20px;
            color: #333;
        }
        
        .con::before {
            content: '';
            width: 0;
            height: 0;
            position: absolute;
            top: 28px;
            left: 18px;
            border: 8px solid #000;
            border-style: solid dashed dashed;
            border-color: #fff transparent transparent;
        }
    </style>
</head>

<body>
    <div class="search">
        <div class="con">123</div>
        <input type="text" placeholder="请输入您的快递单号" class="jd">
    </div>
    <script>
        // 快递单号输入内容时, 上面的大号字体盒子(con)显示(这里面的字号更大)
        // 表单检测用户输入: 给表单添加键盘事件
        // 同时把快递单号里面的值(value)获取过来赋值给 con盒子(innerText)做为内容
        // 如果快递单号里面内容为空,则隐藏大号字体盒子(con)盒子
        var con = document.querySelector('.con');
        var jd_input = document.querySelector('.jd');
        jd_input.addEventListener('keyup', function() {
                // console.log('输入内容啦');
                if (this.value == '') {
                    con.style.display = 'none';
                } else {
                    con.style.display = 'block';
                    con.innerText = this.value;
                }
            })
            // 当我们失去焦点,就隐藏这个con盒子
        jd_input.addEventListener('blur', function() {
                con.style.display = 'none';
            })
            // 当我们获得焦点,就显示这个con盒子
        jd_input.addEventListener('focus', function() {
            if (this.value !== '') {
                con.style.display = 'block';
            }
        })
    </script>
</body>

到了这里,关于常用的键盘事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js 模拟回车 模拟键盘,给input框输入值 触发回车事件

    使用js模拟按键输入的踩坑记录 https://zhuanlan.zhihu.com/p/356661173 a) b) c) 仅模拟回车事件 https://juejin.im/post/6844904128305430541 键盘键值对照表: https://blog.csdn.net/geekswg/article/details/120246209 原文参考: http://wjhsh.net/robinunix-p-13685771.html https://www.cnblogs.com/robinunix/p/13685771.html 浏览器兼容:

    2024年02月11日
    浏览(60)
  • 常用的键盘事件

    键盘事件 触发条件 onkeyup 某个键盘按键被松开时触发 onkeydown 某个键盘按键被按下时触发 onkeypress 某个键盘按键被按下时触发(但它不识别功能键,比如ctrl、shift等) 注意: 如果使用addEventListener不需要加on onkeypress和前面2个的区别是,他不识别功能键,比如左右箭头、shif

    2024年02月09日
    浏览(29)
  • JavaScript——常用的键盘事件

    目录 一.常用的键盘事件 1.onkeyup 2.onkeydown 3.onkeypress 4.三个事件的执行顺序 二.常用的键盘事件对象 1.keyCode(已弃用) 2.ASCII码表 3.KeyboardEvent.key 三.案例:模拟京东按键定位搜索框 1.思路分析: 2.效果图 3. 代码实现 四.案例:模拟京东快递单号查询 1.思路分析 2.代码实现 3.效果

    2024年02月09日
    浏览(45)
  • js常用点击、鼠标、键盘事件--详解

    JavaScript 提供了多种事件类型,包括点击事件、鼠标事件和键盘事件。您可以通过监听这些事件来响应用户的交互动作。以下是一些常见事件及其相应的 JavaScript 代码示例: 1. 点击事件: 2. 鼠标事件(例如鼠标移入、移出、移动等): 3. 键盘事件(例如按下按键、释放按键

    2024年02月12日
    浏览(55)
  • Qt键盘事件常用按键key值整理

    Qt文档中给了个上百个按键,太多了,所以这里整理了Qt中键盘事件常用的一些按键,若各位想找的按键在这里找不到的话,可以自行在Qt文档中再查看 键名 十六进制值 按键 Qt::Key_Escape 0x01000000 Esc  Qt::Key_Tab 0x01000001 Tab  Qt::Key_Backtab 0x01000002 Tab  Qt::Key_Backspace 0x01000003 退格 Q

    2024年02月12日
    浏览(39)
  • uniapp微信小程序 实现评论键盘弹出的时候 有两个输入框,第一个输入框被禁用并绑定了点击事件,点击后想要触发第二个输入框获取焦点并弹出键盘。但是在 iOS 真机上点击后键盘会短暂失去焦点

    问题 :我现在有一个需求就是 要实现输入评论  有两个输入框,第一个输入框被禁用并绑定了点击事件,点击后想要触发第二个输入框获取焦点并弹出键盘。但是在 iOS 真机上点击后键盘会短暂失去焦点  安卓真机测试没有问题 原因 : 1. iOS 上输入框聚焦有一个显式的动画过

    2024年02月04日
    浏览(58)
  • JavaScript 鼠标事件监听&&触发时机&&触发顺序

    有时间整理下鼠标的监听事件,目前汇总到的鼠标监听事件以下10个: 目录 1. click 2. dblclick 3.contextmenu 4.mousedown 5.mouseup 6.mouseenter 7.mouseleave 8.mouseover 9.mouseout 10.mousemove 先说下触发时机和作用键(左键、右键) 点击事件,只有左键生效 双击事件,只有左键生效 跟click事件对比

    2024年02月08日
    浏览(52)
  • js触发点击事件(模拟自动点击事件)

    进入页面触发点击事件 js 派发事件 Event.initEvent()已弃用 添加链接描述

    2024年02月16日
    浏览(53)
  • js获取键盘按键事件、判断键盘按键事件、调用键盘按键事件

    第一:获取键盘按键事件 第二:判断键盘按键事件 第三:调用键盘按键事件

    2024年02月11日
    浏览(51)
  • vue2:鼠标触发各类事件

    移动端 pc端 template javascript 如何获取鼠标的x,y坐标 这就要利用事件回调中的 e.targetTouches 属性了。 如何获取鼠标每次移动的差值 当鼠标移动时,如何计算得出,当前鼠标位置与上一次鼠标位置的差值呢? 例如,当前鼠标位置为(1,2),上一次鼠标位置为(0,0),差值就是: x:1,

    2024年04月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包