创建一个div在div上按键盘中的上下左右,这个div会根据你所按的键盘 来进行移动且每次移动10px(利用vue)
题主要的代码如下
<meta charset="utf-8" />
<style>
div.item{position:relative;width:100px;height:100px;border:solid 1px #ccc;display:inline-block}
</style>
<div id="app">
<div class="item" v-bind:style="{ left: left + 'px', top: top + 'px' }"></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
data: { left:0,top:0 },
mounted() {
document.addEventListener('keydown', (e) => {
switch (e.keyCode) {
case 38://上
this.top -= 10;
break;
case 40://下
this.top += 10;
break;
case 37://左
this.left -= 10;
break;
case 39://右
this.left += 10;
break;
}
console.log(e.keyCode)
})
}
})
</script>
有帮助麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~
https://blog.csdn.net/weixin_34409357/article/details/86325284
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="container">
<div :style="{top:top +'px',left:left+'px'}"
style="width: 100px;height: 100px;background-color: aqua;position: absolute;">
</div>
</div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script>
(function () {
document.onkeydown = function (e) {
if (e.keyCode === 38) {
vue.control('up');
} else if (e.keyCode === 40) {
vue.control('down');
} else if (e.keyCode === 37) {
vue.control('left');
} else if (e.keyCode === 39) {
vue.control('right');
}
}
})();
let vue = new Vue({
el: '#container',
data: {
left: 500,
top: 350,
},
methods: {
control(type) {
switch (type) {
case 'up':
this.top -= 10;
break;
case 'down':
this.top += 10;
break;
case 'left':
this.left -= 10;
break;
case 'right':
this.left += 10;
break;
}
}
}
});
</script>
</html>