Показать сообщение отдельно
  #4 (permalink)  
Старый 02.08.2019, 06:03
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Ставим влаги нажатым клавишам,вся соль в верхушке, остальное мишура (пример для простоты понимания, !не боевой код)
<div id="obj" style="width: 20px; height:20px; background-color:red; position:absolute; "></div>
  <script>

    var key = {
      87: 0,
      68: 0,
      83: 0,
      65: 0,
    };

    window.onkeydown = e => key[e.keyCode] = 1;
    window.onkeyup = e => key[e.keyCode] = 0;

    //остальное мишура
    var rct = obj.getBoundingClientRect();
    pos = [['top',rct.top],['left',rct.left]];
    
    (run =_=> {
      [[87,83],[65,68]].forEach((tl, x)=> tl.forEach((el, i)=> {
        if(key[el]) {
          pos[x][1] += i ? 1 : -1;
          obj.style[pos[x][0]] = pos[x][1]+'px';
        }
      }));
      setTimeout(run, 50);
    })();

  </script>
Ответить с цитированием