一个div运动,键盘操控的八个方向

解题思路:
1.给div一个动画效果
2.给每个方向添加一个自定义属性false
3.当按下键盘事件左(37)上(38)右(39)下(40)所对应的值时条件变成true
4.按键松开后 条件变回false

代码如下:
<script>
var box = document.querySelector('.box');
//给四个方向添加条件
var dir = {
  l: false,
  t: false,
  r: false,
  b: false
};

var speed = 5;
//运动的动画、每个方向运动的距离
(function move(){
  window.requestAnimationFrame(move);

  if(dir.l){
    box.style.left = box.offsetLeft - speed + 'px';
  }
  if(dir.r){
    box.style.left = box.offsetLeft + speed + 'px';
  }
  if(dir.t){
    box.style.top = box.offsetTop - speed + 'px';
  }
  if(dir.b){
    box.style.top = box.offsetTop + speed + 'px';
  }
})();
//添加键盘事件 运用switch语句
window.addEventListener('keydown', function (e){
  var keyCode = e.keyCode;
  switch (keyCode) {
    case 37:
      dir.l = true;
      break;
    case 38:
      dir.t = true;
      break;
    case 39:
      dir.r = true;
      break;
    case 40:
      dir.b = true;
      break;
  }
});
//案件抬起,条件变回初始值
window.addEventListener('keyup', function (e){
  var keyCode = e.keyCode;
  switch (keyCode) {
    case 37:
      dir.l = false;
      break;
    case 38:
      dir.t = false;
      break;
    case 39:
      dir.r = false;
      break;
    case 40:
      dir.b = false;
      break;
  }
});复制代码

希望对你有所帮助!!!

转载于:https://juejin.im/post/59f9e70a6fb9a0450f2142c5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值