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使用vant中的checkbox实现全选功能
Nov 17 Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 Vue.js
vue使用element-ui实现表单验证
Dec 13 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
如何在 Vue 表单中处理图片
Jan 26 Vue.js
vue 项目@change多个参数传值多个事件的操作
Jan 29 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
Vue SPA 首屏优化方案
Feb 26 Vue.js
vue 给数组添加新对象并赋值
Apr 20 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
如何vue使用el-table遍历循环表头和表体数据
Apr 26 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
php输入流php://input使用浅析
2014/09/02 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
JavaScript实现修改伪类样式
2017/11/27 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
Python3爬虫使用Fidder实现APP爬取示例
2018/11/27 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
python软件都是免费的吗
2020/06/18 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
小学美术教学反思
2014/02/01 职场文书
党员批评与自我批评
2014/02/12 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
幼儿园家长寄语
2014/04/02 职场文书
计算机专业自荐信
2015/03/05 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
Python中time标准库的使用教程
2022/04/13 Python