div keyevent
key event of div in vuejs
HTML
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app">
<div class="container">
<div class="box"
@keyup="keyEvent"
:style="boxStyle"
>
</div>
</div>
</div>
CSS
.container {
width:95vh;
height:95vh;
position:relative;
}
.box {
width:50px;
height:50px;
background-color:yellow;
position:absolute;
}
JavaScript
new Vue({
el: '#app',
data: function() {
return {
boxStyle: {
top: 0,
left: 0
}
}
},
created: function() {
window.addEventListener('keyup', this.keyEvent, true)
},
beforeDestroy: function() {
window.removeEventListener('keyup', this.keyEvent, true)
},
methods: {
keyEvent: function(e) {
var key = ''
var t = 1
switch(e.key) {
case 'ArrowUp':
key = 'top'
t = -1
break
case 'ArrowDown':
key = 'top'
break
case 'ArrowLeft':
key = 'left'
t = -1
break
case 'ArrowRight':
key = 'left'
break
default:
return
}
var movement = parseInt(this.boxStyle[key]) + 10 * t;
this.boxStyle[key] = movement + 'px';
}
}
})