案例:鍵盤移動方塊

<!DOCTYPE?html>

<html?lang="en">

<head>

????<meta?charset="UTF-8">

????<meta?name="viewport"?content="width=device-width,?initial-scale=1.0">

????<meta?http-equiv="X-UA-Compatible"?content="ie=edge">

????<title>Document</title>

????<style>

????????.div?{

????????????position:?absolute;

????????????left:?calc(50%?-?50px);

????????????top:?calc(50%?-?50px);

????????????width:?100px;

????????????height:?100px;

????????????background:?red;

????????}

????</style>

</head>

<body>

<div?class="div"></div>

<script?src="mTween.js"></script>

<script>

{

????let?div?=?document.querySelector(".div");

????let?speedX?=?0;

????let?speedY?=?0;

????let?timer?=?0;

????/*

????????可以獲得焦點的元素,才可以使用?keydown

????*/

???css(div,"translateX",0);

???css(div,"translateY",0);

???window.addEventListener("keydown",(e)=>{

????????switch(e.keyCode){

????????????case?37:

????????????????//?左

????????????????speedX?=?-2;

????????????????break;

????????????case?38:

????????????????//?上

????????????????speedY?=?-2;

????????????????break;????

????????????case?39:

????????????????//?右

????????????????speedX?=?2;

????????????????break;?

????????????case?40:

????????????????//?下

????????????????speedY?=?2;

????????????????break;???????

????????}

????????if(!timer){

????????????timer?=?requestAnimationFrame(move);

????????}

???});

???window.addEventListener("keyup",()=>{

???????cancelAnimationFrame(timer);

???????speedX?=?0;

???????speedY?=?0;

???????timer?=?0;

???})

???function?move(){

????????let?nowX?=?css(div,"translateX");

????????let?nowY?=?css(div,"translateY");?

????????css(div,"translateX",nowX?+=?speedX);

????????css(div,"translateY",nowY?+=?speedY);

????????timer?=?requestAnimationFrame(move);

???}

}

</script>????

</body>

</html>

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 源站:http://fengyuanchen.github.io/viewer/ 應用: html: 源碼上是正常...
    羊繪霖閱讀 5,687評論 0 2
  • 運動也可以叫做動畫 1、運動原理 通過連續(xù)不斷的改變物體的位置,而發(fā)生移動變化。 使用setInterval實現(xiàn)。...
    千鋒H5閱讀 380評論 0 0
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,423評論 0 11
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,132評論 0 2
  • 看了很多視頻、文章,最后卻通通忘記了,別人的知識依舊是別人的,自己卻什么都沒獲得。此系列文章旨在加深自己的印象,因...
    DCbryant閱讀 1,963評論 0 4

友情鏈接更多精彩內(nèi)容