麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

原生js實現(xiàn)鍵盤控制div移動且解決停頓問題

2019-11-19 18:40:31
字體:
來源:轉載
供稿:網友

首先說明下為什么會停頓?

效果 :用鍵盤控制一個div移動

當按下一個方向鍵不放,div會先停頓一下,然后才開始持續(xù)移動。

原因:系統(tǒng)要區(qū)分用戶是否連續(xù)輸入,第一個到第二個之間有一個停頓時間
注:了解原因才能解決問題

效果展示

1.簡單控制,但是有停頓

2.簡單控制,解決停頓

解決方法

方法 :先開一個定時器,讓div一直處于(往4個方向)準備移動的狀態(tài)

初始4個方向的值都是false,div就保持在原地不動。

按下某個方向鍵,這個方向的值就改變?yōu)閠rue,div就會開始往這個方向移動。

松開方向鍵,這個方向的值就改變?yōu)閒alse , div就停止這個方向移動了。

基本移動,但是有挺頓的代碼 

<html><head>  <title>鍵盤控制div移動,會有停頓</title>  <meta charset="utf-8" />  <style type="text/css">    #div1{        width:100px;        height:100px;        background:greenyellow;        position:absolute;}  </style>  <script type="text/javascript">    window.onload = function(){      var oDiv = document.getElementById("div1");      document.onkeydown = function(ev){        var ev = ev || event;        var keyCode = ev.keyCode;        switch(keyCode){          case 37: oDiv.style.left = oDiv.offsetLeft-10+"px";break;          case 38: oDiv.style.top = oDiv.offsetTop-10+"px";break;          case 39: oDiv.style.left = oDiv.offsetLeft+10+"px";break;          case 40: oDiv.style.top = oDiv.offsetTop+10+"px";break;        }      }    }  </script></head><body><div id="div1"></div></body></html

控制移動,解決停頓的問題 

<html><head>  <title>鍵盤控制div移動并且解決停頓問題</title>  <meta charset="utf-8" />  <style type="text/css">    /*設置div樣式*/    div{      width:100px;      height:100px;      background: #68affc;      position:absolute;      left:100px;      top:100px;    }  </style>  <script>    //當頁面加載完后    window.onload = function(){      //獲取Div元素      var oDiv = document.getElementById("div1");      //創(chuàng)建各個方向條件判斷初始變量      var left = false;      var right = false;      var top = false;      var bottom = false;      //當按下對應方向鍵時,對應變量為true      document.onkeydown = function(ev){        var oEvent = ev || event;        var keyCode = oEvent.keyCode;        switch(keyCode){          case 37:            left=true;            break;          case 38:            top=true;            break;          case 39:            right=true;            break;          case 40:            bottom=true;            break;        }      };      //設置一個定時,時間為50左右,不要太高也不要太低      setInterval(function(){        //當其中一個條件為true時,則執(zhí)行當前函數(shù)(移動對應方向)        if(left){          oDiv.style.left = oDiv.offsetLeft-10+"px";        }else if(top){          oDiv.style.top = oDiv.offsetTop-10+"px";        }else if(right){          oDiv.style.left = oDiv.offsetLeft+10+"px";        }else if(bottom){          oDiv.style.top = oDiv.offsetTop+10+"px";        }      },50);      //執(zhí)行完后,所有對應變量恢復為false,保持靜止不動      document.onkeyup = function(ev){        var oEvent = ev || event;        var keyCode = oEvent.keyCode;        switch(keyCode){          case 37:            left=false;            break;          case 38:            top=false;            break;          case 39:            right=false;            break;          case 40:            bottom=false;            break;        }      }    }  </script></head><body><div id="div1"></div></body></html>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的工作或者學習能帶來一定的幫助,如果有疑問大家可以留言交流。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲男人一区 | 一级黄色影院 | 亚洲影视在线 | 一级@片 | 欧美亚洲综合在线 | 亚洲国产精品久久久久婷婷老年 | 国产分类视频 | 天天草天天干天天 | 精品久久久久久亚洲精品 | 激情宗合网 | 国产欧美精品一区二区三区四区 | 5a级毛片 | 成人毛片在线 | 亚洲国产馆 | 国毛片| 天天草天天干天天 | 色婷婷tv| 四季久久免费一区二区三区四区 | 国产一区二区在线免费 | 毛片一区二区三区四区 | 草莓福利视频在线观看 | 黄色网址免费入口 | 久国产精品视频 | 欧美视频在线一区二区三区 | 日本aaa一级片 | 色综合精品 | 成人毛片网站 | 日韩视频一 | 黄色片在线观看网站 | 羞羞色院91精品网站 | 中文字幕爱爱视频 | 色悠悠久久久久 | 国产分类视频 | 2021国产精品 | 欧美日韩国产一区二区三区在线观看 | 免费看一级片 | 久久sp| 依依成人精品视频 | av日韩一区二区三区 | 四虎久草 | 久久久久免费精品国产小说色大师 |