按键修饰符在监听键盘事件中的按键表
按键修饰符在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符...
2023-07-19
按键修饰符
在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:
<input v-on:keyup.enter="submit">
复制代码
你可以直接将 KeyboardEvent.key 暴露的任意有效按键名转换为 kebab-case 来作为修饰符。
keyup.page-down="onPageDown">
复制代码
为了在必要的情况下支持旧浏览器,Vue 提供了绝大多数常用的按键码的别名:
你还可以通过全局 config.keyCodes 对象自定义按键修饰符别名:
// 可以使用 `v-on:keyup.f1`
Vue.config.keyCodes.f1 = 112
复制代码
系统修饰键
可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的监听器。
与按键别名不同的是,修饰键和 keyup 事件一起用时,事件引发时必须按下正常的按键。换一种说法:如果要引发 keyup.ctrl,必须按下 ctrl 时释放其他的按键;单单释放 ctrl 不会引发事件。
<input @keyup.alt.67="clear">
<input @keyup.alt="other"><input @keydown.ctrl.13="submit">
复制代码
对于elementUI的input,我们需要在后面加上.native, 因为elementUI对input进行了封装,原生的事件不起作用。
v-model="form.name" placeholder="昵称" @keyup.enter="submit">
v-model="form.name" placeholder="昵称" @keyup.enter.native="submit">
复制代码
.exact修饰符
.exact 修饰符允许你控制由精确的系统修饰符组合触发的事件。
<button v-on:click.ctrl="onClick">Abutton>
<button v-on:click.ctrl.exact="onCtrlClick">Abutton>
<button v-on:click.exact="onClick">Abutton>
复制代码
鼠标按钮修饰符
这些修饰符会限制处理函数仅响应特定的鼠标按钮。
系统按键组合
如果我们要监听全局的按键操作方法,显然,将其绑定在页面元素上是不行的。
我们可在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表
当前非电脑浏览器正常宽度,请使用移动设备访问本站!