原文链接: vue 键盘事件监听

上一篇: 使用环形队列触发延时任务

下一篇: vue 一次失败的dom游戏制作

参考

https://cn.vuejs.org/v2/guide/events.html#事件修饰符

一般的按键事件是加载input上的

    <input type="text" @keydown="keyUp($event)">

但是目前需要在div上监听,搞了好久没能实现

下面这种无法生效,加上各种事件修饰符也不会生效

  <div class="main"  @keyUp="keyUp" >

目前只能在body上添加监听器

      document.body.onkeydown = this.keyDown

使用ref设置的键盘监听无法生效,但是点击事件可以监听到。。。

效果使用键盘控制飞机移动

<template><div class="main" ref="main"><img src="../assets/plane.svg" ref="plane" class="plane"></div>
</template><script>import Ball from '../util/Ball'import Bullet from '../util/Bullet'import Plane from '../util/Plane'export default {name: "game-card",data() {return {balls: [],bullets: [],plane: new Plane(),}},computed: {},methods: {keyUp(e) {console.log(e)},keyDown(e) {console.log(e.code)if (e.code == 'ArrowUp') {} else if (e.code == 'ArrowRight') {this.move(1)} else if (e.code == 'ArrowDown') {} else if (e.code == 'ArrowLeft') {this.move(3)}},move(direction) {if (direction == 1) {console.log('move right', this.$refs.plane.style.left)this.$refs.plane.style.left = (++this.plane.x) + 'px'console.log(this.$refs.plane.style.left);} else if (direction == 3) {console.log('move left')this.$refs.plane.style.left = (--this.plane.x) + 'px'}},},mounted() {document.body.onkeydown = this.keyDown}}
</script><style scoped>.main {width: 100vw;height: 100vh;position: relative;}.plane {position: absolute;left: 0;bottom: 0;}
</style>

vue 键盘事件监听相关推荐

  1. jquery实现上下左右键盘监听_基于 jQuery 实现键盘事件监听控件

    最近项目里要做一个画板,需要对键盘事件进行监听,来进行诸如撤回.重做.移动.缩放等操作,因此顺手实现了一个键盘事件监听控件,期间略有收获,整理出来,希望对大家有所帮助,更希望能获得高手的指点. 1. ...

  2. Java Swing 键盘事件监听

    Java Swing 键盘事件监听 开发工具与关键技术:java. elipse2019.jdk1.8 作者:Amewin 撰写时间:2019年9月16日 键盘事件的事件源一般丐组件相关,当一个组件处 ...

  3. JS:打字游戏_键盘事件监听

    1. 打字游戏 屏幕随机出现字母或数字 用户按下键盘,屏幕显示回答正确与否 当用户按下ESC时游戏结束 <!DOCTYPE html> <html lang="en&quo ...

  4. 键盘事件监听_键盘事件

    键盘事件监听 There are 3 types of events when interacting with keyboard events: 与键盘事件进行交互时,有3种类型的事件: keydo ...

  5. 安卓键盘事件监听,键盘弹出收起

    一.键盘事件监听 1.在mainifest.xml 中设置activity模式 ```<activityandroid:name=".ui.activity.MainActivity& ...

  6. vue/xx/事件监听,按键与键码值

    vue中的事件监听 <!DOCTYPE html> <html lang="en"><head><meta charset="U ...

  7. vue中事件监听watch

    vue中的watch实际上是用来监听vue实例中的数据变化. 监听String <template><div @click="stringClick">{{ ...

  8. html键盘事件监听,react怎样监听键盘事件

    react监听键盘事件的方法:React中有监听键盘按下事件onKeyUp或者onKeyDown属性(以下用onKeyUp),值为自定义方法keyUp,即onKeyUp={this.keyUp}. 通 ...

  9. egret键盘事件监听

    document.addEventListener("keydown", function (event: any) {//alert(event.key);//console.l ...

最新文章

  1. java应用menchac_java之JUC
  2. “XXXXX” is damaged and can’t be opened. You should move it to the Trash 解决方案
  3. 【Swift】自定义控件无限轮播 + 无限图片轮播
  4. LR(1)分析表-语法树-四元式
  5. ThinkJS前端搭配vue时的Nginx配置
  6. 3D中国跳棋 —— 记与子禾童鞋的结对编程(附网站地址及完整源码)
  7. 移动前端自适应解决方案和比较
  8. C++动态数组的创建
  9. Unity Transform bug
  10. v6使用手册 天正电气t20_天正电气T20手册
  11. paypal如何支付欧元_paypal欧元付款的问题
  12. 在线计算机表格制作,excel表格制作,教您excel怎么制作表格
  13. C 里 求 log2 N 的问题
  14. 用matlab进行频域分析,使用Matlab对信号进行频域分析的方法
  15. Mac常见问题:如何使用文件保险箱加密 Mac 上的启动磁盘!
  16. “互联网+“项目路演PPT制作学习笔记分享
  17. DirectX11:着色器
  18. 在 Flutter 中自定义画笔 Painter
  19. 从现在开始,请务必珍惜你手里的现金
  20. Imm Cleaning Solutions PCC54-W-1.2-Z喷嘴

热门文章

  1. bootstrap table export插件导出pdf格式文件中文乱码问题解决办法
  2. 使用485串口通信时,有时候有乱码,有时候就没乱码
  3. 纯css实现三角形--详细原理
  4. 如何在Github的Markdown文件中插入图片?
  5. 设计模式初识(三)结构型模式(Structural Pattern)
  6. Inconel600军标化学成分 锻件锻件密度
  7. 破重▪领先——H3C 2013渠道峰会盛大开幕
  8. 1.STM32F429简介
  9. 【读书笔记】蒸汽朋克(各个艺术家的评论)
  10. 实时流协议---RTSP【详解】