国产黄色免费网站_久久天天做天天爱综合色_精品国产一区久久久_成人黄色激情网站_久久成人在线视频_美女一区二区在线观看_亚洲精品免费一区亚洲精品免费精品一区 _91精品国产综合久久精品麻豆

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

2020-3-1    前端達人

原理

  1. 利用鍵盤控制移動,則需要了解onkeydown函數(shù),表示某個按鍵被按下,可以以此綁定一個事件響應(yīng)函數(shù),當鍵盤被按下時候,觸發(fā)此事件,進行移動
  2. keyCode 對于keypress 事件,該屬性聲明了被敲擊的鍵生成的 Unicode 字符碼。對于 keydown 和 keyup 事件,它指定了被敲擊的鍵的虛擬鍵盤碼。虛擬鍵盤碼可能和使用的鍵盤的布局相關(guān)。 因此我們可以根據(jù)keycode返回的字符碼來判斷用戶所按下的鍵,下面就是一個用于測試上下左右按鍵的js代碼,經(jīng)過我的測試之后,返回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 來獲得當前方塊的坐標,然后將坐標進行一定的更改,就可以實現(xiàn)移動的效果了,下面給出代碼

    window.onload = function() {
                document.onkeydown = function(event) {
                    event = event || window.event;
                    //設(shè)置移動速度
                    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;
    
                    }
                };
    
            };
    



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

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


    <!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");
                //設(shè)置移動速度
                var speed = 10;
                //設(shè)置移動的方向
                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>

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

版權(quán)聲明:本文為CSDN博主「loving-cat」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

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



日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://www.newchinaweekly.com

存檔

日韩欧美亚洲范冰冰与中字| 在线永久免费观看黄网站| 亚洲av成人无码网天堂| 国产bdsm视频| 国产高潮失禁喷水爽到抽搐| 日韩 中文字幕| 国产午夜视频在线| avtt中文字幕| 麻豆视频在线免费看| 成人免费一区二区三区| 亚洲精品久久久成人| 亚州福利视频| av片哪里在线观看| 国产成人一二| 欧美一级视频| 国产精品乱码久久久久久| 欧美亚洲动漫精品| 久久在线视频在线| 国产高清精品一区| 大香煮伊手机一区| 在线观看亚洲网站| 色呦呦中文字幕| 免费高清成人| 精品人人视频| 亚洲综合激情在线| 91免费看片在线观看| 色呦呦一区二区三区| 色偷偷偷亚洲综合网另类| 亚洲xxxxx电影| 国产精品99久久免费黑人人妻| 少妇太紧太爽又黄又硬又爽小说| 中文字幕人妻丝袜乱一区三区| 少妇高潮爽到全身痉挛抽搐| 日本中文字幕在线播放| 日韩高清成人在线| 九九久久精品视频| 欧美日韩日日摸| 午夜精品免费视频| av动漫在线播放| 色偷偷www8888| 欧美色图亚洲| 制服丝袜在线播放| 狠狠色丁香婷婷综合影院| 成人午夜av影视| 精品嫩草影院久久| 亚洲专区国产精品| 两性午夜免费视频| 国产精品久久久午夜夜伦鲁鲁| 天天射狠狠干| 白嫩亚洲一区二区三区| 九九国产精品视频| 日韩精品一区二区三区视频| 91亚洲va在线va天堂va国| 不卡的av中文字幕| 国产日本精品视频| 二人午夜免费观看在线视频| gogogo高清在线观看一区二区| 久久新电视剧免费观看| 亚洲图片在区色| 亚洲精品中文综合第一页| 在线免费看视频| 尤物视频..com| 99精品国自产在线| 国产福利一区二区三区视频在线| 欧美一区二区三区播放老司机 | 一个人看的视频www| 在线观看国产小视频| 中国动漫在线观看完整版免费| 巨人精品**| 亚洲欧洲国产专区| 69av视频在线播放| 91精品视频国产| 男人通一通女人的下水道| 国产福利在线免费观看| 日韩激情一区二区| 7777精品伊人久久久大香线蕉完整版| 91亚洲精品在线观看| 蜜桃av免费看| www.撸撸| 亚洲bt欧美bt精品777| 亚洲色图欧美偷拍| 国产精品视频26uuu| 亚洲天堂资源在线| 黄色三级网站| 亚洲午夜久久| 精品久久久免费| 国产视频一区二区不卡| 久久久99999| 蜜桃视频免费网站| 欧美精品国产| 精品国产一二三区| 日本中文字幕不卡免费| 亚洲成人精品在线播放| 精品国产免费第一区二区| 久久国产三级| 欧美激情一区二区三区四区| 欧美亚洲激情在线| 久久久久国产精品区片区无码| 91在线资源| 日本成人a网站| 精品久久香蕉国产线看观看亚洲| 亚洲mm色国产网站| 国产在线观看成人| 天堂а√在线官网| 国产一区日韩二区欧美三区| 久久亚洲春色中文字幕| 亚洲av无码专区在线播放中文| 国产成人福利短视频app| 久久99精品国产自在现线| 欧美色道久久88综合亚洲精品| 免费久久久一本精品久久区| 国产超碰人人爽人人做人人爱| 东凛在线观看| 成人一区二区三区| 欧美一区第一页| 国产男女猛烈无遮挡在线喷水| 在线免费日韩| 精品午夜久久福利影院| 久久男人的天堂| 99久久99久久精品免费| 男人av在线| 国产精品白丝jk黑袜喷水| 性欧美在线看片a免费观看| 国产不卡在线观看视频| 韩国免费在线视频| 成人视屏免费看| 国产精品欧美日韩久久| 天堂网av手机版| 免费成人直播| 午夜精品在线看| 国产精品一二三在线观看| 久久中文字幕无码| 18av在线视频| 国产精品久久久久永久免费观看| 国产精品成人观看视频免费| 亚洲一级av毛片| 国产剧情一区二区在线观看| 在线一区二区三区四区| 天天夜碰日日摸日日澡性色av| 初体验·韩国| 99亚洲精品| 日本精品视频在线观看| 99热国产在线观看| 激情久久99| 在线成人高清不卡| 热久久久久久久久| 色播在线视频| 成人激情视频网站| 欧美精品成人一区二区在线观看| 天堂av资源在线| 久久久久美女| 性日韩欧美在线视频| 亚洲图片欧美日韩| 国产精品久久久久av蜜臀| 亚洲成人av片在线观看| 黄色在线观看av| 黄色成人在线网| 欧洲亚洲精品在线| 久久久久亚洲av无码麻豆| 国产在线视频网站| 伊人性伊人情综合网| 无码人妻丰满熟妇区96| 全部孕妇毛片丰满孕妇孕交| 成人永久aaa| 无码免费一区二区三区免费播放| 精品麻豆国产| 另类欧美日韩国产在线| 91aaaa| аⅴ成人天堂中文在线| 精品动漫av| 国产精品视频久| 少妇av一区二区| 亚洲精品影院在线观看| 国产在线视频一区| 成人网6969conwww| 翔田千里一区二区| 成人激情直播| 韩国视频一区| 久久69国产一区二区蜜臀| 日本亚洲导航| 免费的很黄很污的视频网站| 99re这里只有精品6| 亚洲综合欧美日韩| 秋霞在线观看av| 一区二区日韩av| 亚洲丝袜在线观看| 超碰高清在线| 精品国产乱码久久久久久久| 尤物在线免费视频| 国产欧美三级电影| 九九热精品视频| 蜜臀久久久久久999| 免费看的黄色欧美网站| 好吊色欧美一区二区三区视频| 岳张嘴把我的精子吞下去| jiyouzz国产精品久久| 农民人伦一区二区三区| av一区在线观看| 欧美一级一区二区| 农村妇女精品一区二区|