tbwshc

          用html+js+css做一個(gè)模擬鍵盤

           這個(gè)鍵盤用html+js+css搞出來的,做這個(gè)沒什么目的,純粹覺得好玩。

              現(xiàn)在暫時(shí)的功能有:

              1、可按鍵跟蹤

              2、可大小寫切換

              3、可鼠標(biāo)點(diǎn)擊輸入

              4、可移動(dòng)鍵盤位置

              可拓展功能有:

              1、可改變鍵盤大小

              2、可改變主題

              3、對某些按鍵添加事件

              4、結(jié)合html5的canvas弄個(gè)打字游戲啥的(想想就有趣^_^)

              ps(本人js和css都是菜鳥一枚,不喜可以噴,但請勿涉及家人)

           

          html

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          <head>
              <title></title>
              <link href="Css/keyboard.css" rel="stylesheet" type="text/css" />
              <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
              <script src="Scripts/keyBoard.js" type="text/javascript"></script>
               
          </head>
          <body>
              <input id="state" type="hidden" />
              <input id="txtID" type="text" onclick='openKeyboard("txtID");' />
              <div id="keyboardParent">
              </div>
          </body>
          </html>

           

          keytBoard.js

          View Code
          復(fù)制代碼
            1 //移動(dòng)鍵盤
            2 function dragMing(idORclass1, idORclass2) {
            3     var obj = this; //這里的this是指dragMing對象么
            4     this.idORclass1 = idORclass1; //給dragMing的idORclass1賦值
            5     this.idORclass2 = idORclass2; //給dragMing的idORclass2賦值
            6     this.deltaX = 0;
            7     this.deltaY = 0;
            8 
            9     function dragStart(dragEvent) {
           10         obj.deltaX = dragEvent.clientX - $(obj.idORclass2).offset().left;
           11         obj.deltaY = dragEvent.clientY - $(obj.idORclass2).offset().top;
           12         $(document).bind("mousemove", dragMove);
           13         $(document).bind("mouseup", dragStop);
           14         dragEvent.preventDefault();
           15 
           16     }
           17     function dragMove(dragEvent) {
           18         $(obj.idORclass2).css({
           19             "left": (dragEvent.clientX - obj.deltaX) + "px",
           20             "top": (dragEvent.clientY - obj.deltaY) + "px"
           21         })
           22         dragEvent.preventDefault();
           23 
           24     }
           25     function dragStop() {
           26         $(document).unbind("mousemove", dragMove);
           27         $(document).unbind("mouseup", dragStop);
           28 
           29     }
           30 
           31     $(document).ready(function () {
           32         $(obj.idORclass1).bind("mousedown", dragStart);
           33 
           34     })
           35 }
           36 
           37 
           38 
           39 //繪制鍵盤
           40 function drawKeyboard(type) {
           41     $("#keyboardNum").empty();
           42     $("#keyboardLetterQ").empty();
           43     $("#keyboardLetterA").empty();
           44     $("#keyboardLetterZ").empty();
           45     $("#keyboardSpaceBar").empty();
           46 
           47     if (type == "lower") {
           48         var keyboardNum = { "192": "`", "49": "1", "50": "2", "51": "3", "52": "4", "53": "5", "54": "6", "55": "7", "56": "8", "57": "9", "48": "0", "189": "-", "187": "=", "8": "Backspace" };
           49         var keyboardLetterQ = { "81": "q", "87": "w", "69": "e", "82": "r", "84": "t", "89": "y", "85": "u", "73": "i", "79": "o", "80": "p", "219": "[", "221": "]" };
           50         var keyboardLetterA = { "20": "Caps Lock", "65": "a", "83": "s", "68": "d", "70": "f", "71": "g", "72": "h", "74": "j", "75": "k", "76": "l", "186": ";", "222": "'", "220": "\\" };
           51         var keyboardLetterZ = { "16": "Shift", "90": "z", "88": "x", "67": "c", "86": "v", "66": "b", "78": "n", "77": "m", "188": ",", "190": ".", "191": "/" };
           52         var keyboardSpaceBar = { "32": "Space", "": "Tim" };
           53         var key = "";
           54     }
           55     else {
           56         var keyboardNum = { "192": "~", "49": "!", "50": "@", "51": "#", "52": "$", "53": "%", "54": "^", "55": "&", "56": "*", "57": "(", "48": ")", "189": "_", "187": "+", "8": "Backspace" };
           57         var keyboardLetterQ = { "81": "Q", "87": "W", "69": "E", "82": "R", "84": "T", "89": "Y", "85": "U", "73": "I", "79": "O", "80": "p", "219": "{", "221": "}" };
           58         var keyboardLetterA = { "20": "Caps Lock", "65": "A", "83": "S", "68": "D", "70": "F", "71": "G", "72": "H", "74": "J", "75": "K", "76": "L", "186": ":", "222": "\"", "220": "|" };
           59         var keyboardLetterZ = { "16": "Shift", "90": "Z", "88": "X", "67": "C", "86": "V", "66": "B", "78": "N", "77": "M", "188": "<", "190": ">", "191": "?" };
           60         var keyboardSpaceBar = { "32": "Space", "": "Tim" };
           61         var key = "";
           62     }
           63     $.each(keyboardNum, function (key, value) {
           64         if (value != "Backspace") {
           65             key = $('<div class="simpleKey" name="key" key="' + key + '" value="' + value + '">' + value + '</div>');
           66             $("#keyboardNum").append(key);
           67         }
           68         else {
           69             key = $('<div class="backspaceKey" name="key"  key="' + key + '" value="' + value + '">' + value + '</div>');
           70             $("#keyboardNum").append(key);
           71         }
           72     });
           73 
           74     $.each(keyboardLetterQ, function (key, value) {
           75         key = $('<div class="simpleKey" name="key"  key="' + key + '" value="' + value + '">' + value + '</div>');
           76         $("#keyboardLetterQ").append(key);
           77     });
           78 
           79     $.each(keyboardLetterA, function (key, value) {
           80         if (value != "Caps Lock") {
           81             key = $('<div class="simpleKey" name="key"  key="' + key + '" value="' + value + '">' + value + '</div>');
           82             $("#keyboardLetterA").append(key);
           83         }
           84         else {
           85             key = $('<div class="capslockKey" name="key"  key="' + key + '" value="' + value + '">' + value + '</div>');
           86             $("#keyboardLetterA").append(key);
           87         }
           88     });
           89 
           90     $.each(keyboardLetterZ, function (key, value) {
           91         if (value != "Shift") {
           92             key = $('<div class="simpleKey" name="key"  key="' + key + '" value="' + value + '">' + value + '</div>');
           93             $("#keyboardLetterA").append(key);
           94         }
           95         else {
           96             key = $('<div class="shiftKey" name="key"  key="' + key + '" value="' + value + '">' + value + '</div>');
           97             $("#keyboardLetterA").append(key);
           98         }
           99     });
          100 
          101     $.each(keyboardSpaceBar, function (key, value) {
          102         if (value != "Space") {
          103             key = $('<div class="simpleKey" name="key"  key="' + key + '" value="' + value + '">' + value + '</div>');
          104             $("#keyboardSpaceBar").append(key);
          105         }
          106         else {
          107             key = $('<div class="spaceKey" name="key"  key="' + key + '" value="' + value + '">' + value + '</div>');
          108             $("#keyboardSpaceBar").append(key);
          109         }
          110     });
          111 
          112     addMouseClickEvent();
          113 
          114 
          115 }
          116 
          117 //監(jiān)聽鼠標(biāo)點(diǎn)擊事件
          118 function addMouseClickEvent() {
          119     $("#close").click(function () {
          120         closeKeyboard()
          121     });
          122 
          123     $("div[name='key']").hover(function () {
          124         $(this).css("background-color", "Gray");
          125     }, function () {
          126         $(this).css("background-color", "White");
          127     }).click(function () {
          128         var thisValue = $(this).attr("value");
          129         var ID = $("#state").val();
          130         switch (thisValue) {
          131             case "": //"
          132                 $("#" + ID).val($("#" + ID).val() + "\"");
          133                 if ($("#shift").attr("checked") == true) {
          134                     if ($("#capsLock").attr("checked") != true) {
          135                         drawKeyboard("lower");
          136                     }
          137                     $("#shift").attr("checked", false);
          138                 }
          139                 break;
          140             case "Shift":
          141                 $("#shift").attr("checked", $("#shift").attr("checked") == true ? false : true);
          142                 if ($("#shift").attr("checked") == true) {
          143                     drawKeyboard("upper")
          144                 }
          145                 else {
          146                     if ($("#capsLock").attr("checked") != true) {
          147                         drawKeyboard("lower");
          148                     }
          149                 }
          150                 break;
          151             case "Caps Lock":
          152                 $("#capsLock").attr("checked", $("#capsLock").attr("checked") == true ? false : true);
          153                 $("#capsLock").attr("checked") == true ? drawKeyboard("upper") : drawKeyboard("lower");
          154                 $("#shift").attr("checked", false)
          155                 break;
          156             case "Space":
          157                 $("#" + ID).val($("#" + ID).val() + " ");
          158                 break;
          159             case "Backspace":
          160                 $("#" + ID).val($("#" + ID).val().substring(0, $("#" + ID).val().length - 1));
          161                 break;
          162             default:
          163                 $("#" + ID).val($("#" + ID).val() + thisValue);
          164                 if ($("#shift").attr("checked") == true) {
          165                     if ($("#capsLock").attr("checked") != true) {
          166                         drawKeyboard("lower");
          167                     }
          168                     $("#shift").attr("checked", false);
          169                 }
          170 
          171                 break;
          172         }
          173         $("#" + ID).focus();
          174     });
          175 }
          176 
          177 
          178 //監(jiān)聽鍵盤事件
          179 function addKeydownEvent() {
          180     $("html").keydown(function (event) {
          181         var realkey = String.fromCharCode(event.keyCode);
          182 
          183         //特殊鍵
          184         if (event.keyCode == 32) { realkey = "Space" }
          185         if (event.keyCode == 13) { realkey = "Enter" }
          186         if (event.keyCode == 27) { realkey = " Esc" }
          187         if (event.keyCode == 16) {
          188             realkey = "Shift";
          189             $("#shift").attr("checked", $("#shift").attr("checked") == true ? false : true);
          190             if ($("#shift").attr("checked") == true) {
          191                 drawKeyboard("upper")
          192             }
          193             else {
          194                 if ($("#capsLock").attr("checked") != true) {
          195                     drawKeyboard("lower");
          196                 }
          197             }
          198         }
          199         if (event.keyCode == 17) { realkey = " Ctrl" }
          200         if (event.keyCode == 18) { realkey = "Alt" }
          201         if (event.keyCode == 8) { realkey = "Backspace" }
          202         if (event.keyCode == 20) { realkey = "Caps Lock"; $("#capsLock").attr("checked", $("#capsLock").attr("checked") == true ? false : true); $("#capsLock").attr("checked") == true ? drawKeyboard("upper") : drawKeyboard("lower"); }
          203 
          204 
          205         $("div[name='key']").css("background-color", "White")
          206         $("div[key=" + event.keyCode + "]").css("background-color", "Gray");
          207 
          208         //如果按了shif再按其他鍵并且這個(gè)鍵不是shif鍵盤變回小寫
          209         //如果capsLock選中了鍵盤就不用變回小寫
          210         if ($("#shift").attr("checked") == true && event.keyCode != 16) {
          211             if ($("#capsLock").attr("checked") != true) {
          212                 drawKeyboard("lower");
          213             }
          214             $("#shift").attr("checked", false);
          215         }
          216 
          217     });
          218 }
          219 
          220 //打開鍵盤
          221 function openKeyboard(ID) {
          222     $("#keyboard").css("visibility", "visible");
          223     $("#state").val(ID);
          224 }
          225 
          226 //關(guān)閉鍵盤
          227 function closeKeyboard() {
          228     $("#keyboard").css("visibility", "hidden")
          229 }
          230 
          231 
          232 $(function () {
          233     var divKeyBoard = '<div id="keyboard" class="keyboard"><div id="keyboardHead"><div><input id="shift" type="checkbox"/>Shift</div><div><input id="capsLock" type="checkbox"/>Caps Lock</div><div id="close" style="border:1px solid black; float:right; width:20px; height:20px; cursor:pointer;"><img src="/Image/close.gif" style=" width:20px; height:20px"/></div></div><div id="keyboardNum"></div><div id="keyboardLetterQ"></div><div id="keyboardLetterA"></div><div id="keyboardLetterZ"></div><div id="keyboardSpaceBar"></div></div>';
          234     $("body").append(divKeyBoard);
          235     drawKeyboard("lower");
          236     addKeydownEvent();
          237     $("#keyboard").css("visibility", "hidden");
          238     var drag = new dragMing("#keyboard", "#keyboard");
          239 
          240 })
          241 
          242       
          1 .keyboard
          2 {
          3     width:800px;
          4     height:300px;
          5     text-align:center;
          6     position:absolute;
          7 }
          8
          9 .keyboard div
          10 {
          11     height:50px;
          12 line-height:50px
          13      float:left
          14 }
          15
          16 #keyboardHead
          17 {
          18 width:800px;
          19     position:relative;
          20 }
          21
          22 #keyboardLetterQ
          23 {
          24     width:800px;
          25     position:relative;
          26     left:75px;
          27 }
          28
          29 #keyboardSpaceBar 30 {
          31     width:800px;
          32     position:relative;
          33     left:200px;
          34     top:52px;
          35 }
          36
          37 .simpleKey
          38 {
          39     width:50px;
          40     border:1px solid black;    
          41 }
          42
          43 .enterKey
          44 {
          45     width:100px;
          46     height:100px;
          47     border:1px solid black;        
          48 }
          49
          50 .shiftKey
          51 {
          52     width:115px;
          53     border:1px solid black;   
          54 }
          55
          56 .backspaceKey
          57 {
          58     width:120px;
          59     border:1px solid black;
          60 }
          61
          62 .capslockKey
          63 {
          64     width:90px;
          65     border:1px solid black;
          66 }
          67
          68 .spaceKey
          69 {
          70     width:300px;
          71     border:1px solid black;   
          72 }
          73
          74 .keyboard div[name="key"]:hover{
          75     background: Gray;
          76 }
          77
          78 .keyboard div[name="key"]
          79 {
          80     cursor:pointer;
          81 }

           

          posted on 2012-07-06 15:38 chen11-1 閱讀(2525) 評論(1)  編輯  收藏

          Feedback

          # re: 用html+js+css做一個(gè)模擬鍵盤 [未登錄] 2015-10-11 13:17 陳浩

          henhao   回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 新巴尔虎左旗| 运城市| 类乌齐县| 田东县| 涞水县| 三原县| 冕宁县| 肇庆市| 旌德县| 大田县| 陈巴尔虎旗| 商洛市| 农安县| 嘉兴市| 襄垣县| 孙吴县| 内丘县| 抚顺市| 崇礼县| 山西省| 宜兰市| 娱乐| 石屏县| 吉首市| 大石桥市| 五峰| 五指山市| 连江县| 阜平县| 于都县| 于田县| 聊城市| 兴城市| 平乐县| 岚皋县| 克东县| 高邮市| 谷城县| 连州市| 台江县| 镇远县|