ウェブ家の備忘録

ウェブデザイナーの備忘録

JavaScript : キーの同時押しを認知

https://teratail.com/questions/38689#reply-61733


<script>
'use strict';
function handleKeydownUp (event) {
  var keyCode = event.keyCode,
      keyCodes = this.keyCodes,
      i = keyCodes.indexOf(keyCode);

  switch (event.type) {
    case 'keydown':
      if (i === -1) {
        keyCodes.push(keyCode);
      }

      if (keyCodes.indexOf(66) !== -1 && keyCodes.indexOf(70) !== -1) {
        console.log('B and F');
      }
      break;
    case 'keyup':
      keyCodes.splice(i, 1);
      break;
  }

  console.log(event.type, JSON.stringify(keyCodes))
}

var listener = {keyCodes: [], handleEvent: handleKeydownUp};
document.addEventListener('keydown', listener, false);
document.addEventListener('keyup', listener, false);
</script>