1. 程式人生 > >輸入互動(一)

輸入互動(一)

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6     <title>Document</title>
  7 </head>
  8 <style>
  9     .out{
 10         width:40px;
 11         height:40px;
 12         background:#dd0000;
 13         border-radius: 6px;
 14         float:left;
 15         margin-left:20px;
 16         display: flex;
 17         justify-content: center;
 18         align-items: center;
 19     }
 20     .box{
 21         width:26px;
 22         height:26px;
 23         border:2px solid #fff;
 24         border-radius: 4px;
 25         text-align: center;
 26         color:#fff;
 27         display: flex;
 28         justify-content: center;
 29         align-items: center;
 30     }
 31     .w{
 32         background:transparent;
 33         color:#fff;
 34         width:100%;
 35         height:100%;
 36         text-align: center;
 37         outline: none;
 38         border:none;
 39 
 40     }
 41 </style>
 42 <body>
 43     <div class="out">
 44         <div class="box"><input type="text" class="w"></div>
 45     </div>
 46     <div class="out">
 47         <div class="box"><input type="text" class="w"></div>
 48     </div>
 49     <div class="out">
 50         <div class="box"><input type="text" class="w"></div>
 51     </div>
 52     <div class="out">
 53         <div class="box"><input type="text" class="w"></div>
 54     </div>
 55     <div class="out">
 56         <div class="box"><input type="text" class="w"></div>
 57     </div>
 58     <div class="out">
 59         <div class="box"><input type="text" class="w"></div>
 60     </div>
 61     <script>
 62 
 63         let w = findClass('w');
 64         let box = findClass('box');
 65         // 第一次獲得游標
 66         getFocus();
 67         // 遍歷
 68         loop(w,function(item,index){
 69               item.oninput=function(){
 70                 writeAfter(this,box[index],index);
 71               }  
 72         })
 73         // 輸入之後
 74         function writeAfter(obj,box){
 75             let val=obj.value;
 76             box.classList.add('x');
 77             box.innerText=val;
 78             getFocus();
 79         }
 80         // 找到物件
 81         function findClass(clastr){
 82             return document.getElementsByClassName(clastr);
 83         }
 84         // 獲取第一個物件的游標
 85         function getFocus(){
 86             let w = findClass('w');
 87             if(w[0])
 88             {
 89                 w[0].focus();
 90             }
 91         }
 92         // 物件遍歷
 93         function loop(obj,back)
 94         {
 95             let i = 0;
 96             while(obj[i])
 97             {
 98                 back(obj[i],i);
 99                 i++;
100             }
101         }
102         // 刪除操作
103         function deletePlay(){
104             window.onkeydown=function(ev)
105             {
106                 if(ev.keyCode == 8)
107                 {
108                     let x=findClass('x');
109                     let w=findClass('w');
110                     loop(w,function(item){
111                         item.blur();
112                     })
113                     x[x.length-1].innerHTML='<input type="text" class="w">';
114                     x[x.length-1].className='box';
115                     getFocus();
116                 }
117             }
118         }
119         deletePlay();
120     </script>
121 </body>
122 </html>