前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >25 修饰键盘事件与鼠标事件

25 修饰键盘事件与鼠标事件

作者头像
LIYI
发布2020-02-13 11:57:47
2.6K0
发布2020-02-13 11:57:47
举报
文章被收录于专栏:艺述论专栏艺述论专栏

如果系统之间key名与按键方式存在差异,最好还是使用keyCode较为简单

代码语言:javascript
复制
目录

修饰键盘事件
使用组合控制键修饰键盘事件
精准修饰控制
修饰鼠标事件

修饰键盘事件

一般js监听键盘事件,例如keyup,无论用户是按下哪个键,例如a/b/c,事件函数都会触发。vue为了简化开发,对键盘事件、鼠标事件,提供了修饰符,方便只在用户按下某个特定键值时触发函数。

例如:

代码语言:javascript
复制
<input placeholder="enter" v-on:keyup.enter="onKey" /><br/>

只响应回车按键。enter是键盘事件的keyCode。

有以下常用的key名可被使用:

代码语言:javascript
复制
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right

可以使用如下示例监听任意键盘事件:

代码语言:javascript
复制
<!-- 修饰键盘事件 -->
<input placeholder="any" v-on:keyup="onKey" /><br/>
methods:{
    onKey(e){
      let {key,keyCode} = e
      console.log('e',key, keyCode);
      
    },

通过该示例,可以查看各个特殊按键的key与keyCode。例如回车按键,key=Enter,keyCode=13。

使用keyCode也可以修饰,直接将keyCode数字放在事件名称后面,示例:

代码语言:javascript
复制
<input placeholder="enter=13" v-on:keyup.13="onKey" /><br/>

当使用key做修饰符时,要将大驼峰全名法转为短横线间隔全名法,例如:

代码语言:javascript
复制
<input placeholder="arrow-down" v-on:keyup.arrow-down="onKey" /><br/>
<input placeholder="arrow-left" v-on:keyup.arrow-left="onKey" /><br/>

arrow-down与arrow-left分别是mac系统的向下方向键与向左方向键的key。有些文章说是page-down、page-left,这是因为在mac系统上,PageDown=Fn+ArrowDown,同时PageUp=Fn+ArrowUP。

如果系统之间key名与按键方式存在差异,最好还是使用keyCode较为简单。如果记不住keyCode数字,可以用上面的onKey函数检测一下。

使用组合控制键修饰键盘事件

有些时候需要按下组合键,例如监听同时按下alt键的情况,例如:

代码语言:javascript
复制
!-- 使用组合控制键修饰键盘事件 -->
<input placeholder="any.alt" v-on:keyup.alt="onKey" /><br/>

有以下组合键可被使用:

代码语言:javascript
复制
.ctrl
.alt
.shift
.meta

其中meta在mac系统上对应 command 键 (⌘)。在 Windows 系统上对应徽标键 (⊞)。

精准修饰控制

有需要精准监听用户是否只按下了某些键,例如CTRL+1键,而如果同时按下了CTRL+SHIFT+1,则略过,这种情况下需要使用精准修饰符exact,示例:

代码语言:javascript
复制
<!-- 精准控制,只有ctrl&1触发 -->
<input placeholder="keyup.ctrl.49.exact" v-on:keyup.ctrl.49.exact="onKey" /><br/>

修饰鼠标事件

不只键盘事件,鼠标鼠标也可以修饰,例如:

代码语言:javascript
复制
<!-- 修饰鼠标事件 -->
<input placeholder="mouseup.left" v-on:mouseup.left="onMouse" /><br/>
<input placeholder="mousedown.right" v-on:mousedown.right="onMouse" /><br/>

分别代表监听鼠标左键按下与右键按下。

源码

代码语言:javascript
复制
https://git.code.tencent.com/shiqiaomarong/vue-go-rapiddev-example/tags/20200121

本文有关的主要在:

代码语言:javascript
复制
vue-and-go-example/simple-vue-project/src/KeyModifier2.vue

参考链接

  • https://cn.vuejs.org/v2/guide/events.html?#系统修饰键

相关阅读

  • 1 如何选择一个 vue ui 框架?
  • 2 梳理 50 年人机交互界面发展史,得出这个规律,开发框架的选择不再迷茫
  • 3 vue 开发常用工具及配置一
  • 4 vue 开发常用工具及配置二
  • 5 vue 开发常用工具及配置三
  • 6 vue 开发常用工具及配置四:推荐一个 mock 工具
  • 7 vue 开发常用工具及配置五:hash 与缓存控制
  • 8 vue 开发常用工具及配置六:认识各种 loader
  • 9 vue 开发常用工具及配置七:处理资源加载问题
  • 10 vue 开发常用工具及配置八:scoped CSS 模块化
  • 11 css 基本功:引入方式及选择器相关
  • 12 手写配置启动一个 vue2 项目
  • 13 声明式渲染与 data 函数
  • 14 上线后不想让人看到源码怎么做?
  • 15 v-if 条件渲染与 v-for 列表渲染
  • 16 处理表单数据与父子组件之间的数据交换
  • 17 vue 组件化基础
  • 18 vue 实例及其双向绑定的实现原理
  • 19 vue 模板语法及简要实现原理
  • 20 vue计算属性和侦听器
  • 21 vue 组件中 Class 的绑定
  • 22 内联样式的绑定
  • 23 列表渲染与“就地复用”原则
  • 24 事件绑定、事件修饰符与事件三阶段
  • 25 修饰键盘事件与鼠标事件
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 艺述论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 修饰键盘事件
  • 使用组合控制键修饰键盘事件
  • 精准修饰控制
  • 修饰鼠标事件
  • 源码
  • 参考链接
  • 相关阅读
相关产品与服务
腾讯云小微
腾讯云小微,是一套腾讯云的智能服务系统,也是一个智能服务开放平台,接入小微的硬件可以快速具备听觉和视觉感知能力,帮助智能硬件厂商实现语音人机互动和音视频服务能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档