亚洲av午夜福利精品一区人妖,亚洲乱码日产精品a级毛片久久,91精品视频观看,青草青草久热精品视频在线观看

利用鍵盤控制小方塊的移動

2020-3-1    前端達人

原理

  1. 利用鍵盤控制移動,則需要了解onkeydown函數,表示某個按鍵被按下,可以以此綁定一個事件響應函數,當鍵盤被按下時候,觸發此事件,進行移動
  2. keyCode 對于keypress 事件,該屬性聲明了被敲擊的鍵生成的 Unicode 字符碼。對于 keydown 和 keyup 事件,它指定了被敲擊的鍵的虛擬鍵盤碼。虛擬鍵盤碼可能和使用的鍵盤的布局相關。 因此我們可以根據keycode返回的字符碼來判斷用戶所按下的鍵,下面就是一個用于測試上下左右按鍵的js代碼,經過我的測試之后,返回37 38 39 40;

    window.onload = function(){
                var box = document.getElementById("box");
                document.onkeydown = function(event){
                    event = event || window.event;
                    console.log(event.keyCode);
                }           
            };
    3



    3.方塊的移動實際上就是坐標的改變,因此需要offsetLeft 和offsetTop 來獲得當前方塊的坐標,然后將坐標進行一定的更改,就可以實現移動的效果了,下面給出代碼

    window.onload = function() {
                document.onkeydown = function(event) {
                    event = event || window.event;
                    //設置移動速度
                    var speed = 10;
                    //當ctrl和方向按鍵同時按下時,提升移動速度
                    if(event.ctrlKey) {
                        speed = 50;
                    }
                    //獲取div
                    var box01 = document.getElementById("box01");
                    switch(event.keyCode) {
                        /*keyCode返回按下按鍵的編碼
                         * 37 向左
                         * 38向上
                         * 39向右
                         * 40向下
                         */
                        case 37:
                            box01.style.left = box01.offsetLeft - speed + "px";
                            break;
                        case 39:
                            box01.style.left = box01.offsetLeft + speed + "px";
                            break;
                        case 38:
                            box01.style.top = box01.offsetTop - speed + "px";
                            break;
                        case 40:
                            box01.style.top = box01.offsetTop + speed + "px";
                            break;
    
                    }
                };
    
            };
    



    這樣就可以簡單實現方塊的移動,但是此時我們會發現一個問題,當我們進行移動的時候,按住按鍵不松手,理論上方塊應該直接平滑的進行移動,但實際上并非如此,第一下它會有一個小的停頓,這實際上是瀏覽器防止誤觸所設置的,因此我們需要對此進行優化
    解決方案

    這里我采用了定時器的做法來解決這個問題,因為控制移動的因素有兩個,一個是控制方向,一個是控制速度,控制方向沒有問題,因此我們需要改變速度
    setInterval(function(){},time);這是一個定時器,我們只需要在time時間內調用一次函數,就可以解決停頓的問題了
    下面附上修改后的完整代碼


    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            #box01 {
                width: 100px;
                height: 100px;
                background-color: #008000;
                position: absolute;
            }
        </style>
        <script type="text/javascript">
            window.onload = function() {
    
                //獲取div
                var box01 = document.getElementById("box01");
                //設置移動速度
                var speed = 10;
                //設置移動的方向
                var dir = 0;
    
                setInterval(function() {
                    switch(dir) {
                        /*keyCode返回按下按鍵的編碼
                         * 37 向左
                         * 38向上
                         * 39向右
                         * 40向下
                         */
                        case 37:
                            box01.style.left = box01.offsetLeft - speed + "px";
                            break;
                        case 39:
                            box01.style.left = box01.offsetLeft + speed + "px";
                            break;
                        case 38:
                            box01.style.top = box01.offsetTop - speed + "px";
                            break;
                        case 40:
                            box01.style.top = box01.offsetTop + speed + "px";
                            break;
    
                    }
    
                }, 50)
    
                document.onkeydown = function(event) {
                    event = event || window.event;
    
                    //當ctrl和方向按鍵同時按下時,提升移動速度
                    if(event.ctrlKey) {
                        speed = 50;
                    } else {
                        speed = 10;
                    }
                    //使dir等于keycode的值
                    dir = event.keyCode;
    
                    //當鼠標松開時,停止移動         ---如果不寫這一個會造成無法停止移動的效果
                    document.onkeyup = function() {
                        dir = 0;
                    };
    
                };
    
            };
        </script>
    </head>
    
    <body>
        <div id="box01"></div>
    </body>
    

</html>

————————————————

版權聲明:本文為CSDN博主「loving-cat」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/weixin_42878211/article/details/104558443



日歷

鏈接

個人資料

藍藍設計的小編 http://m.skdbbs.com

存檔

亚洲av午夜福利精品一区人妖,亚洲乱码日产精品a级毛片久久,91精品视频观看,青草青草久热精品视频在线观看
<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 国产精品亚洲第一区在线暖暖韩国| 欧美日韩国产首页在线观看| 亚洲视频在线观看视频| 亚洲美女在线观看| 亚洲乱亚洲高清| 亚洲精品一区二区三区福利| 亚洲美女91| 亚洲少妇最新在线视频| 亚洲一区尤物| 午夜激情久久久| 久久大逼视频| 久久综合九色99| 欧美成人亚洲成人| 欧美日韩精品福利| 国产精品一区二区你懂得| 国产日韩欧美黄色| 伊人精品在线| 亚洲毛片一区二区| 亚洲特色特黄| 久久精品论坛| 欧美高清日韩| 欧美人交a欧美精品| 国产精品扒开腿做爽爽爽视频| 国产精品亚洲人在线观看| 国产一区二区在线观看免费| 亚洲高清av| 夜夜嗨av一区二区三区中文字幕 | 一二美女精品欧洲| 国产欧美日韩| 国产一区二区福利| 亚洲国产精品美女| 国产精品美女在线观看| 国产欧美一区二区精品仙草咪 | 精品福利电影| 日韩视频免费观看高清完整版| 亚洲天堂成人在线视频| 欧美一区二区三区视频在线观看| 另类激情亚洲| 国产精品久久久久久久久久免费 | 亚洲小少妇裸体bbw| 久久久久国产精品www| 欧美激情一区二区久久久| 国产精品免费看| 亚洲第一精品在线| 亚洲在线播放电影| 蜜臀91精品一区二区三区| 欧美日韩一区二区在线| 狠狠色狠狠色综合日日小说| 一本大道久久精品懂色aⅴ| 欧美中文字幕在线| 欧美精品在线免费| 国产日韩一区在线| 亚洲精品国精品久久99热| 欧美一区二区成人| 欧美日韩精品一区二区| 在线观看国产精品网站| 亚洲色图综合久久| 欧美.www| 国产一区二区三区久久| 91久久精品国产91久久| 香蕉成人久久| 欧美日韩在线精品一区二区三区| 国内一区二区三区在线视频| 99精品久久久| 久久在线91| 国产欧美欧洲在线观看| 中文国产亚洲喷潮| 欧美成人激情视频| 国产一区二区三区久久久久久久久| 中日韩午夜理伦电影免费| 欧美www视频| 伊人蜜桃色噜噜激情综合| 午夜在线视频一区二区区别 | 国产欧美一区二区三区在线老狼 | 伊人久久成人| 性欧美超级视频| 欧美视频在线观看免费网址| 亚洲激情自拍| 久久久噜噜噜久久久| 国产精品乱人伦中文| 99热这里只有成人精品国产| 裸体歌舞表演一区二区| 国产综合第一页| 欧美一区二区三区日韩| 国产精品久久久久一区| 一区二区三区|亚洲午夜| 欧美二区在线| 亚洲国产老妈| 鲁大师影院一区二区三区| 韩日精品在线| 欧美在线视频一区二区三区| 国产精品视频导航| 亚洲一区美女视频在线观看免费| 欧美女主播在线| 亚洲大片精品永久免费| 久久人人爽爽爽人久久久| 国产日产欧美精品| 香蕉久久精品日日躁夜夜躁| 国产精品99免费看 | 一色屋精品视频在线看| 欧美一区91| 国产日韩欧美高清| 欧美与黑人午夜性猛交久久久| 国产乱码精品一区二区三区av| 亚洲一区二区毛片| 国产精品久久久久9999| 亚洲一区二区三区精品动漫| 国产精品成人观看视频免费| 中文日韩在线视频| 国产精品扒开腿做爽爽爽软件 | 亚洲免费影院| 国产精品久久综合| 午夜久久美女| 国产一区二区三区最好精华液| 久久久www成人免费毛片麻豆| 国产亚洲欧美aaaa| 欧美在线一二三四区| 国产一区二区剧情av在线| 久久久在线视频| 亚洲电影av在线| 欧美高清免费| 一本色道久久综合亚洲精品小说| 欧美日韩国产999| 亚洲午夜精品| 国产欧美精品va在线观看| 欧美在线在线| 在线日韩av片| 欧美韩国在线| 亚洲视屏一区| 国产亚洲a∨片在线观看| 久久久亚洲国产天美传媒修理工| 在线成人黄色| 欧美日韩国产专区| 午夜亚洲视频| 狠狠久久亚洲欧美专区| 欧美成人午夜视频| 亚洲天堂av综合网| 国产日韩三区| 麻豆成人在线观看| 99精品欧美一区| 国产精品在线看| 开元免费观看欧美电视剧网站| 亚洲人成网在线播放| 国产精品久久97| 久久免费视频在线观看| 亚洲美女中出| 国产精品露脸自拍| 久久久久久久一区| 日韩一级精品视频在线观看| 国产精品伊人日日| 免费亚洲视频| 亚洲专区国产精品| 亚洲大片在线| 国产精品国产福利国产秒拍| 久久精品一区二区国产| 日韩视频一区二区三区在线播放免费观看 | 日韩西西人体444www| 国产伦精品一区二区| 麻豆精品一区二区综合av| 一区二区三区日韩欧美精品| 国外成人网址| 欧美视频在线观看一区二区| 久久精视频免费在线久久完整在线看| 亚洲茄子视频| 国产日韩一区二区三区在线播放| 欧美福利视频在线| 欧美一区国产一区| 亚洲免费观看视频| 国产一区二区中文字幕免费看| 欧美激情综合色| 久久精品日产第一区二区三区 | 影音先锋亚洲电影| 国产精品美女久久久| 欧美激情欧美激情在线五月| 欧美一区影院| 一本色道久久综合亚洲精品高清| 一区国产精品| 国产精品视频最多的网站| 欧美精品v国产精品v日韩精品| 久久精品一区二区国产| 亚洲综合视频在线| 亚洲精品中文字| 国产真实久久| 国产精品久久久久久久午夜片| 欧美+日本+国产+在线a∨观看| 亚洲欧美综合网| 亚洲老司机av| 在线精品亚洲| 国产午夜精品一区二区三区欧美 | 国产精品久久福利| 欧美精品久久一区| 久久这里只有精品视频首页| 香蕉亚洲视频| 亚洲一级高清| 99精品欧美一区二区三区| 亚洲电影网站| 狠狠久久婷婷| 国内一区二区三区在线视频| 国产欧美一区二区精品秋霞影院| 欧美午夜视频|