键盘事件

Vue的键盘事件:

@keydown:按下

@keypress:按住

@keyup:抬起

默认的按键别名:Vue为常用按键映射了别名;

自定义按键别名:Vue.config.keyCodes可以自定义按键别名;

 

@keydown:按下

比如在键盘上按下a:

 

 

 vue代码:

<script>
            
            window .onload= () =>{
                new Vue({
                el:"#one",
                data:{
                
                
                },
                methods:{
                    show(e){
                        console.log(e);
                    }
                    
                    
                }
                
                
            });
            }
        </script>

 

html代码:

<div id="one">
            <input type="text" @keydown="show($event)" />
        
            
        </div>

 

 

 需求:类似于提交,在input中输入内容,按回车键,执行一个方法:

 

原生js方式:

 

在vue 方法中写入:

onEnter(e){
                        if(e.keyCode==13){
                            
                            console.log("按下回车 提交了!!!");
                        }
                    }

 

HTML:

<!--    原生js方式-->
    <input type="text" placeholder="onEnter" @keydown="onEnter($event)" />

 

 

vue提供的方式,效果图和原生的方式一样,代码略有不同;

<!--    vue提供的方式-->
            <input type="text" placeholder="onEnter" @keydown.13="onEnter($event)" />
            

 

vue:

onEnter(){

                    
                    console.log("按下回车 提交了!!!");
                    
                    
                    }

 

13代表的是回车,由于不直观,所以有了内置按键别名,效果同上:

<!--    vue提供内置按键别名-->
            <input type="text" placeholder="onEnter" @keydown.enter="onEnter($event)" />
            

 

 

 

@keyup:抬起

 

 vue:

onKeyAUp(){
                    
                console.log("抬起键盘的 a 了!!!");
                }

html:

<!--其它按键别名-->
            <input type="text" placeholder="keyupAup" @keyup.a="onKeyAUp" />

 

 

自定义按键别名:

 

vue:

onMute(){
                    console.log("按下静音键了!!!");
                    
                    
                }

 

Vue.config.keyCodes={
                "audio-volume-mute":121
            }

注意:驼峰命名不能使用

 

html:

<!--自定义按键别名-->
            <input type="text" placeholder="自定义按键别名" @keydown.audio-volume-mute="onMute" />
            

 

使用数组,实现按上起作用,按w也起作用:

up:keycode=38,w:keycode=87

vue:

Vue.config.keyCodes={
                "audio-volume-mute":121,
                up:[38,87]
            }
onUpDown(){
                    console.log("按下前进!!!");
                }
                    

html:

<!--自定义按键别名-->
            <input type="text" placeholder="自定义按键别名2" @keydown.up="onUpDown" />
            

 

以上实例的所有代码:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>键盘事件</title>
 6         <script src="../js/vue.js"></script>
 7         
 8         <script>
 9             Vue.config.keyCodes={
10                 "audio-volume-mute":121,
11                 up:[38,87]
12             }
13             
14             window .onload= () =>{
15                 new Vue({
16                 el:"#one",
17                 data:{
18                 
19                 
20                 },
21                 methods:{
22                     show(e){
23                         console.log(e);
24                     },
25                     onEnter(){
26 //                        <!--    原生js方式-->
27 //                        if(e.keyCode==13){
28 //                            
29 //                            console.log("按下回车 提交了!!!");
30 //                        }
31                     
32                     console.log("按下回车 提交了!!!");
33                     
34                     
35                 },
36                 onKeyAUp(){
37                     
38                 console.log("抬起键盘的 a 了!!!");
39                 },
40                 onMute(){
41                     console.log("按下静音键了!!!");
42                     
43                     
44                 },
45                 onUpDown(){
46                     console.log("按下前进!!!");
47                 }
48                     
49                     
50                 }
51                 
52                 
53             });
54             }
55         </script>
56     </head>
57     <body>
58         <div id="one">
59         <!--    <input type="text"  placeholder="show" @keydown="show($event)" /><br />-->
60             
61         <!--    原生js方式-->
62             <!--<input type="text" placeholder="onEnter" @keydown="onEnter($event)" />
63             -->
64                 
65             <!--    vue提供的方式-->
66         <!--    <input type="text" placeholder="onEnter" @keydown.13="onEnter($event)" />-->
67         
68         <!--    vue提供内置按键别名-->
69             <!--<input type="text" placeholder="onEnter" @keydown.enter="onEnter($event)" />-->
70             
71             <!--其它按键别名-->
72             <!--<input type="text" placeholder="keyupAup" @keyup.a="onKeyAUp" />-->
73             <!--自定义按键别名-->
74             <input type="text" placeholder="自定义按键别名" @keydown.audio-volume-mute="onMute" />
75             
76             <!--自定义按键别名-->
77             <input type="text" placeholder="自定义按键别名2" @keydown.up="onUpDown" />
78             
79         
80             
81         </div>
82     </body>
83 </html>
键盘事件

 

posted @ 2019-04-13 17:42  perfect*  阅读(299)  评论(0编辑  收藏  举报
$(function() { $('#cnblogs_post_body img').each(function() { let imgSrc = $(this).attr('src'); let year = parseInt(imgSrc.substr(imgSrc.indexOf('g')+1,4)); if(year >= 2022){ imgSrc += `?watermark/2/text/amlndWl5YW4=/font/5a6L5L2T/fontsize/15/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast`; $(this).attr('src', imgSrc) } }) })