国产精品爱久久久久久久小说,女人扒开腿让男人桶到爽 ,亚洲欧美国产双大乳头,国产成人精品综合久久久久,国产精品制服丝袜无码,免费无码精品黄av电影,黑色丝袜无码中中文字幕,乱熟女高潮一区二区在线

    利用鍵盤控制小方塊的移動(dòng)

    2020-3-1    前端達(dá)人

    原理

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

      window.onload = function() {
                  document.onkeydown = function(event) {
                      event = event || window.event;
                      //設(shè)置移動(dòng)速度
                      var speed = 10;
                      //當(dāng)ctrl和方向按鍵同時(shí)按下時(shí),提升移動(dòng)速度
                      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;
      
                      }
                  };
      
              };
      



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

      這里我采用了定時(shí)器的做法來解決這個(gè)問題,因?yàn)榭刂埔苿?dòng)的因素有兩個(gè),一個(gè)是控制方向,一個(gè)是控制速度,控制方向沒有問題,因此我們需要改變速度
      setInterval(function(){},time);這是一個(gè)定時(shí)器,我們只需要在time時(shí)間內(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è)置移動(dòng)速度
                  var speed = 10;
                  //設(shè)置移動(dòng)的方向
                  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;
      
                      //當(dāng)ctrl和方向按鍵同時(shí)按下時(shí),提升移動(dòng)速度
                      if(event.ctrlKey) {
                          speed = 50;
                      } else {
                          speed = 10;
                      }
                      //使dir等于keycode的值
                      dir = event.keyCode;
      
                      //當(dāng)鼠標(biāo)松開時(shí),停止移動(dòng)         ---如果不寫這一個(gè)會(huì)造成無法停止移動(dòng)的效果
                      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)載請(qǐng)附上原文出處鏈接及本聲明。

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



    日歷

    鏈接

    個(gè)人資料

    存檔

    主站蜘蛛池模板: 久久久久国色av免费看| 日韩专区在线观看| 人人干人人干人人干| 在线看片人成视频免费无遮挡| 色呦呦| 午夜视频污| 粗壮挺进人妻水蜜桃成熟| 女人被爽到高潮视频免费国产| 日本老师巨大bbw丰满| 久久视奸| 14萝自慰专用网站| 国产女人喷潮视频在线观看| 一级性生活大片| 人妻日韩精品中文字幕| 日韩精品无码区免费专区| 国产成人免费在线观看| 亚洲AV成人无码一二三区在线| 永久免费无码网站在线观看个| 国产人妻精品久久久久久| 午夜视频国产| 自偷自拍亚洲综合精品| 免费观看潮喷到高潮大叫网站| av制服丝袜| 欧洲精品码一区二区三区| 久久亚洲中文无码咪咪爱| 久久精品一区二区三区不卡牛牛| 青娱乐在线免费观看| 亚洲视频在线观看| 欧洲一区二区| 狂野欧美性猛交xxxx| 精品午夜福利在线视在亚洲 | 天堂网在线观看| 18禁男女污污污午夜网站免费暖暖| 日日爽夜夜爽| 精品视频一区二区三区在线观看| 欧美真人做爰在线观看| 不卡无码人妻一区二区| 国产精品午夜福利| 日韩国产电影| 亚洲高清 一区二区三区| 免费永久看黄神器无码软件|