Vue vue-shortkey

by kabanoki

HTML

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/index.min.js"></script>
<div id="app">
    <p>イベント:[ctrl + alt + b]</p>
    <button v-shortkey="['ctrl', 'alt', 'b']" @shortkey="theAction()">Open</button>
    <p>マルチイベント:[arrowup] もしくは [arrowdown]</p>
    <button v-shortkey="{up: ['arrowup'], down: ['arrowdown']}" @shortkey="theActionArrow">Joystick</button>
    <p>フォーカス:[alt + i]</p>
    <input type="text" v-shortkey.focus="['alt', 'i']" v-model="name" />
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>

CSS

#app {
    padding: 20px;
  }
  p {
    margin-bottom:0px;
    font-weight: 800;
  }

Vue

Vue.use(VueShortkey);
new Vue({
   el: '#app',
   data: {
    name: ''
   },
   methods: {
    theAction: function(){
      alert("['ctrl', 'alt', 'b']");
    },
    theActionArrow:function(event){
      switch (event.srcKey) {
      case 'up':
        alert('up');
        break;
      case 'down':
        alert('down');
        break;
      }
    }
   }
 })