vue监听键盘事件的相关总结


Posted in Vue.js onJanuary 29, 2021

按键修饰符

在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

<!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` -->
<input v-on:keyup.enter="submit">

你可以直接将 KeyboardEvent.key 暴露的任意有效按键名转换为 kebab-case 来作为修饰符。

<input v-on:keyup.page-down="onPageDown">

为了在必要的情况下支持旧浏览器,Vue 提供了绝大多数常用的按键码的别名:

  • - enter 
  • - tab 
  • - delete (捕获“删除”和“退格”键) 
  • - esc 
  • - space 
  • - up 
  • - down 
  • - left 
  • - right

你还可以通过全局 config.keyCodes 对象自定义按键修饰符别名: 

// 可以使用 `v-on:keyup.f1`
Vue.config.keyCodes.f1 = 112

系统修饰键

可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的监听器。 

  • - .ctrl 
  • - .alt 
  • - .shift 
  • - .meta

Do something
与按键别名不同的是,修饰键和 keyup 事件一起用时,事件引发时必须按下正常的按键。换一种说法:如果要引发 keyup.ctrl,必须按下 ctrl 时释放其他的按键;单单释放 ctrl 不会引发事件。

<!-- 按下Alt + 释放C触发 -->
<input @keyup.alt.67="clear">
 
<!-- 按下Alt + 释放任意键触发 -->
<input @keyup.alt="other"><!-- 按下Ctrl + enter时触发 --><input @keydown.ctrl.13="submit">

对于elementUI的input,我们需要在后面加上.native, 因为elementUI对input进行了封装,原生的事件不起作用。

<input v-model="form.name" placeholder="昵称" @keyup.enter="submit">

<el-input v-model="form.name" placeholder="昵称" @keyup.enter.native="submit"></el-input>

.exact修饰符

.exact 修饰符允许你控制由精确的系统修饰符组合触发的事件。 

<!-- 即使 Alt 或 Shift 被一同按下时也会触发 -->
<button v-on:click.ctrl="onClick">A</button>

<!-- 有且只有 Ctrl 被按下的时候才触发 -->
<button v-on:click.ctrl.exact="onCtrlClick">A</button>

<!-- 没有任何系统修饰符被按下的时候才触发 -->
<button v-on:click.exact="onClick">A</button>

鼠标按钮修饰符

  • .left 
  • .right 
  • .middle

这些修饰符会限制处理函数仅响应特定的鼠标按钮。 

系统按键组合

如果我们要监听全局的按键操作方法,显然,将其绑定在页面元素上是不行的。

我们可在mounted里面监听:

mounted() {
  document.onkeydown = function (event) {
    let key = window.event.keyCode;
    if (key === 65 && event.ctrlKey) { 
      // 监听ctrl+A组合键      
      window.event.preventDefault(); //关闭浏览器默认快捷键      
      console.log('crtl+ a组合键')    
    } else if(key === 83 && event.ctrlKey) {       
      window.event.preventDefault(); //关闭浏览器快捷键
      console.log('保存');
    }
  }
}

从以上例子可以看出,shift、Control、Alt 在JS中也可用“window.event.shiftKey”、“window.event.ctrlKey”、“window.event.altKey” 代替。

附录-键盘按钮keyCode表

vue监听键盘事件的相关总结

vue监听键盘事件的相关总结

以上就是vue监听键盘事件的相关总结的详细内容,更多关于vue监听键盘事件的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
vue在图片上传的时候压缩图片
Nov 18 Vue.js
vue实现广告栏上下滚动效果
Nov 26 Vue.js
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
Dec 02 Vue.js
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
Feb 22 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
vue如何批量引入组件、注册和使用详解
May 12 Vue.js
Vue实现动态查询规则生成组件
May 27 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
vue组件vue-esign实现电子签名
Apr 21 Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 #Vue.js
vue 项目@change多个参数传值多个事件的操作
Jan 29 #Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 #Vue.js
聊聊vue 中的v-on参数问题
Jan 29 #Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 #Vue.js
Vue 事件的$event参数=事件的值案例
Jan 29 #Vue.js
Vue 3自定义指令开发的相关总结
Jan 29 #Vue.js
You might like
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
php实现生成验证码实例分享
2016/04/10 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
jquery 图片轮换效果
2010/07/29 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
jquery常用方法及使用示例汇总
2014/11/08 Javascript
js闭包实例汇总
2014/11/09 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
JS实现在线ps功能详解
2019/07/31 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Python进程间通信用法实例
2015/06/04 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python数据结构之翻转链表
2017/02/25 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
3分钟学会一个Python小技巧
2018/11/23 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
《春天来了》教学反思
2014/04/07 职场文书
2014年度党员自我评议
2014/09/13 职场文书
春风化雨观后感
2015/06/11 职场文书
工作态度怎么写
2015/06/25 职场文书
大学同学聚会感言
2015/07/30 职场文书
2016年元旦致辞
2015/08/01 职场文书
合作合同协议书
2016/03/21 职场文书