zoukankan      html  css  js  c++  java
  • 添加软键盘

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>自写一个简单点的网页软键盘</title>
    <meta charset="UTF-8">
    <style>
    
    #keyboard th, #keyboard td {
      border:1px solid #ccc;
      padding:2px 0;
      text-align:center;
    }
    #keyboard td {
      cursor:pointer
    }
    #keyboard {
      border:1px solid #999;
      float:left;
      padding:1px;
      display:none;
    }
    </style>
    <script>
    var htmlCode = {
      "&"  :  "&",
      '"' :  """,
      "<"  :  "<",
      ">"  :  ">",
    }
    function keyBoardClick(){
      var input = document.getElementById("input");
      var e = window.event || keyBoardClick.caller.arguments[0];
      var el = e.target || e.srcElement;
      if(el.tagName.toLowerCase() == "td" && el.rowSpan <= 1 && el.colSpan <= 1 ){
        var str = el.innerHTML;
        str = htmlCode[str] || str;
        input.value += str;
      }
      if(el.innerHTML == "退格"){
        input.value = input.value.slice(0,-1);  
      }
      if(el.innerHTML == "切换大/小写"){
        var els = document.getElementsByTagName("td");
        for(var i = 0, l = els.length; i < l; i++){
          var str = els[i].innerHTML;
          if(/^[a-z]$/.keyBoardClick(str))
            els[i].innerHTML = str.toUpperCase();
          if(/^[A-Z]$/.keyBoardClick(str))
            els[i].innerHTML = str.toLowerCase();  
        }
      }
      if(el.innerHTML == "ENTER"){
        ctrKeyboard();
      }
    }
    function ctrKeyboard(){
      var el = document.getElementById("keyboard");
      if(el.offsetWidth > 0)
        el.style.display = "none";
      else {
        el.style.display = "block";
        sortNum();  
        capsInit();
      }
    }
    function capsInit(){
      var els = document.getElementsByTagName("td");
      for(var i = 0,j = 0, l = els.length; i < l; i++){
        var str = els[i].innerHTML;
        if(/^[A-Z]$/.keyBoardClick(str))
          els[i].innerHTML = str.toLowerCase();  
      }
    }
    function sortNum (){
      var arr = [0,1,2,3,4,5,6,7,8,9].sort(function(){
        return Math.random() > 0.5?1:-1;
      });
      var els = document.getElementsByTagName("td");
      for(var i = 0,j = 0, l = els.length; i < l; i++){
        var str = els[i].innerHTML;
        if(/^d$/.keyBoardClick(str))
          els[i].innerHTML = arr[j++];
      }  
    }
    </script>
    </head>
    <body>
    <input id="input" type="text"/><input type="button" value="打开/关闭 键盘" onclick="ctrKeyboard()"/>
    <br>
    <br>
    <div id="keyboard">
     <table cellspacing="1" width="480" onclick="keyBoardClick()">
      <tr>
       <th colspan="16">键盘模拟输入密码器</th>
      </tr>
      <tr>
       <td>~</td>
       <td>!</td>
       <td>@</td>
       <td>#</td>
       <td>$</td>
       <td>%</td>
       <td>^</td>
       <td>&</td>
       <td>*</td>
       <td>(</td>
       <td>)</td>
       <td>_</td>
       <td>+</td>
       <td>|</td>
       <td rowspan="2" width="120">退格</td>
      </tr>
      <tr>
       <td>`</td>
       <td class="num">1</td>
       <td class="num">2</td>
       <td class="num">3</td>
       <td class="num">4</td>
       <td class="num">5</td>
       <td class="num">6</td>
       <td class="num">7</td>
       <td class="num">8</td>
       <td class="num">9</td>
       <td class="num">0</td>
       <td>-</td>
       <td>=</td>
       <td></td>
      </tr>
      <tr>
       <td>q</td>
       <td>w</td>
       <td>e</td>
       <td>r</td>
       <td>t</td>
       <td>y</td>
       <td>u</td>
       <td>i</td>
       <td>o</td>
       <td>p</td>
       <td>{</td>
       <td>}</td>
       <td>[</td>
       <td>]</td>
       <td colspan="2">切换大/小写</td>
      </tr>
      <tr>
       <td>a</td>
       <td>s</td>
       <td>d</td>
       <td>f</td>
       <td>g</td>
       <td>h</td>
       <td>j</td>
       <td>k</td>
       <td>l</td>
       <td>:</td>
       <td>"</td>
       <td>;</td>
       <td>'</td>
       <td colspan="3" rowspan="3">ENTER</td>
      </tr>
      <tr>
       <td>z</td>
       <td>x</td>
       <td>c</td>
       <td>v</td>
       <td>b</td>
       <td>n</td>
       <td>m</td>
       <td><</td>
       <td>></td>
       <td>?</td>
       <td>,</td>
       <td>.</td>
       <td>/</td>
      </tr>
     </table>
    </div>
    <img class="center-block"/>
    <br />
    </body>
    </html>
  • 相关阅读:
    js三大弹出消息框
    HDU
    BZOJ 1101 Zap 莫比乌斯反演
    竞赛常用STL备忘录
    K-query SPOJ
    HDU 3333 Turing Tree 离线 线段树/树状数组 区间求和单点修改
    2018 Multi-University Training Contest
    多校补完计划 2017-02
    CodeForces 931C Laboratory Work 水题,构造
    CodeForces 937D 936B Sleepy Game 有向图判环,拆点,DFS
  • 原文地址:https://www.cnblogs.com/leaflife/p/8033461.html
Copyright © 2011-2022 走看看