色噜噜人体337p人体 I 超碰97观看 I 91久久香蕉国产日韩欧美9色 I 色婷婷我要去我去也 I 日本午夜a I 国产av高清怡春院 I 桃色精品 I 91香蕉国产 I 另类小说第一页 I 日操夜夜操 I 久久性色 I 日韩欧在线 I 国产深夜在线观看 I 免费的av I 18在线观看视频 I 他也色在线视频 I 亚洲熟女中文字幕男人总站 I 亚洲国产综合精品中文第一 I 人妻丰满熟av无码区hd I 新黄色网址 I 国产精品真实灌醉女在线播放 I 欧美巨大荫蒂茸毛毛人妖 I 国产一区欧美 I 欧洲亚洲1卡二卡三卡2021 I 国产亚洲欧美在线观看三区 I 97精品无人区乱码在线观看 I 欧美妇人 I 96精品在线视频 I 国产人免费视频在线观看 I 91麻豆国产福利在线观看

js鍵盤操作實現div的移動或改變的原理及代碼

時間:2025-05-30 18:16:47 好文 我要投稿
  • 相關推薦

js鍵盤操作實現div的移動或改變的原理及代碼

  js鍵盤操作實現div的移動或改變的原理及代碼

js鍵盤操作實現div的移動或改變的原理及代碼

  昨天記錄了獲取鍵盤按鍵的值的事件,有了值,無非就是針對不同值做不同的操作嘛,而且之前曾經在寫貪吃蛇時也用到過。這樣我們先來分析,要實現鍵盤操作實現div的移動大概的原理吧:

  1、要實現div的移動,首先最關鍵的一點:獲取div對象

  2、postion:absolute將div完全從文檔流中拖出啊,這個地方漏掉了,回去看了貪吃蛇才發現的,真暈

  3、獲取鍵盤的操作

  4、根據鍵盤的不同操作,給出不同響應

  這就是我想起的大概需要注意的地方,還是先來看代碼:

  先是html部分

  然后記錄下javascript的實際操作

  ad=function(){ var obj=lementById("showZone");//獲取到對象了吧,這最簡單 var a=10; var toLeft=toRight=toTop=toBottom=false;//定義幾個boolean型變量,是為了后面方向操作用的,看是四個方向吧 var move=setInterval(function(){//這個地方的move定義實際上毫無意義,只是為了讓這個方法更明顯一點 if(toLeft){ =parseInt(etLeft-a)+"px";//感覺最好還是寫上parseInt,另外,因為offsetLeft是不含px的,所以不要忘記“px” } if(toRight){ =etLeft+a+"px";//不寫parseInt也可以,難道是因為javascript的執行順序?執行+,再執行+,再執行=?實現結果來看是 } if(toTop){ =etTop-a+"px"; } if(toBottom){ =etTop+a+"px"; } },300); //這個經典的定時器啊,循環執行的大神器,還記得setInterval和settimeout的區別么 ydown=function(event){ var event=event||t; switch(ode){ //哈哈,獲取到鍵盤操作了吧 case 37:toLeft=true;break;//改變變量,繼續執行最初的循環,不讓你停不能停啊 case 38:toTop=true;break; case 39:toRight=true;break; case 40:toBottom=true;break; } }; yup=function(event){ switch(ode){ case 37:toLeft=false;break;//給我變回來,讓你停就別動了 case 38:toTop=false;break; case 39:toRight=false;break; case 40:toBottom=false;break; } }; };

  就這樣,我們完成了原理分析中的需求,同時也就可以通過上、下、左、右按鍵來實現div的上下左右移動了,接下來,再來記錄下敏感地方吧。

  1、div需是absolute的,為這個糾結了半天實在不值得,于是查詢了下,了解了一個概念“文檔流”,文檔流,通常說是元素從上而下,自左向右進行排列,那么這個元素就是節點元素,龐大的dom啊。還是先來說說其它解釋吧,我比較喜歡的是這樣來闡述:文檔+流,文檔顧名思義就是說網頁文檔,而流則是輸出方式,還有的解釋說是瀏覽器的解析方式,這個貌似更形象一點,正常的文檔流,就好像是一個平面,而一個元素你把它放在哪了,它就在哪,而浮動、固定定位和相對定位,這里分析absolute,就是重新生成了一個流,脫離了它的父層標簽,就好像之前z-index為0,而這個的z-index就上了它的上面,憑空懸浮在它上面的,可以通過left、top來肆意的挪動它。

  大概意思能夠明白了,但是感覺有些地方還是沒法有效的用語言來表述,而且有些點略微有些模糊,相信隨著經驗的累積,我能理解的更深一些。

  2、keyCode這里的大寫,onkeyup和onkeydown這里的小寫,在這個地方也是測試了下才發現的問題,對于javascript,每個小地方都是大問題啊;

  3、switch里的break;這個java里面就常碰到,就不多說了

  大概的問題就是以上幾點,而你還記得注釋的快捷鍵么,還記得其他快捷鍵么,這就出現了一個問題,上面做出響應的我們只是針對單個按鍵,如果我們想用一些快捷鍵呢,該怎么設置呢?

  先來看下代碼:

  ydown=function(event){//還是跟上面差不多的代碼吧,你看出不同在哪里了么 var event=event||t; var bctrl=Key;//在這里 switch(ode){ case 37:toLeft=true;break; case 38:if(bctrl){ground="yellow";break;}toTop=true;break;//在這里, case 39:toRight=true;break; case 40:toBottom=true;break; } };

  這里碰到了event對象的另一個屬性,是在keyCode之外的另一個,ctrlKey,還是大寫哦,它的主要功能是檢查ctrl按鍵的狀態,其實這樣的還有兩個:

  altKey和shiftKey,分別是對alt按鍵和shift按鍵狀態的檢查,這樣知道怎么設個快捷鍵了吧。

  其實如果是我自己寫的話,可能這樣我就已經很滿足了,但是在翻閱搜索的時候,總能碰到心思縝密的朋友

  附上代碼,你知道是要做什么么:

  function limit(){ var doc = [ntWidth, ntHeight] //防止左側溢出 etLeft <=0 && ( = 0); //防止頂部溢出 etTop <=0 && ( = 0); //防止右側溢出 doc[0] - etLeft - etWidth <= 0 && ( = doc[0] - etWidth + "px"); //防止底部溢出 doc[1] - etTop - etHeight <= 0 && ( = doc[1] - etHeight + "px") }

  這里我附上的是網上的代碼在實現防止溢出的同時,我還想贊一下這個寫法,比我寫的果斷的要短了許多許多,以后也要試著寫短點。

【js鍵盤操作實現div的移動或改變的原理及代碼】相關文章:

移動插座的簡介及工作原理10-04

淺談js的異步執行的作用08-11

鼠標,鍵盤作文12-03

鍵盤與鼠標作文10-19

鼠標與鍵盤的選擇05-18

鼠標與鍵盤的對話作文07-16

如何正確使用鍵盤05-19

當筆桿遇上鍵盤作文07-24

為什么鍵盤按鍵錯亂05-30

鍵盤與鼠標的對話作文08-03

主站蜘蛛池模板: 欧美成人精品在线 | 国产69精品久久久久99尤物 | 张柏芝早期三级在线播放 | 91高清毛片 | 欧美精品八区 | 永久免费看mv网站入口亚洲 | 在线观看国产成人 | 日本高清精品 | 午夜视频播放 | 116少妇做爰毛片 | 日韩中文字幕永久 | 德国性xxx与另类重口 | 日韩一级在线免费观看 | 亚洲成人av一区二区三区 | 精品久久久亚洲 | 亚洲欧美日韩精品成人 | 中文字幕亚洲综合久久蜜桃 | 在线亚洲+欧美+日本专区 | 亚洲乱码中文字幕 | 亚洲人av在线无码影院观看 | 久久精品国产9久久综合 | 天天曰夜夜操 | 亚洲熟妇av一区 | 久久狠狠一本精品综合网 | 亚洲h成年动漫在线观看网站 | 捏胸吃奶h玩烂了 | 2020精品国产福利在线观看香蕉 | 激情综合网色播五月 | 狠狠v欧美v日韩v亚洲ⅴ | 2021国产精品久久久久青青 | 亚洲а∨无码2019在线观看 | 色窝窝无码一区二区三区 | 久久美女免费视频 | 乱人伦中文视频在线观看 | 日韩精品免费无码专区 | 夜色视频在线观看 | 18美女裸体免费观看网站 | 九色国产 | 亚洲精品无 | 亚洲美女屁股眼交2 | 男女无遮挡免费视频 | 成人午夜视频在线免费观看 | 亚洲国产欧美一区三区成人 | a天堂免费 | 亚洲精久久久 | 亚洲一卡久久4卡5卡6卡7卡 | 久久中文字幕精品 | 欧美大片网站 | 农村妇女一区二区 | 欧美精品v国产精品v日韩精品 | 影音先锋在线亚洲网站 | 精品亚洲一区二区三区 | 国产中文av在线 | 日韩精品久久无码中文字幕 | 日本丰满少妇裸体自慰 | 亚洲精品乱码久久久久久久久久久久 | 国产对白叫床清晰在线播放图片 | 亚洲精品1区2区3区 50一60老女人毛片 | 午夜在线视频一区二区区别 | 天天干天天c| 五月深爱网 | 精品免费国产一区二区三区四区 | 亚洲欧美成人片在线观看 | 直接看的毛片 | 九九色 | 亚洲精品国产成人精品软件 | 亚洲欧美熟妇自拍色综合图片 | 日韩欧美三区 | 中文字幕女教师julia视频 | 久久久久久久久久久大尺度免费视频 | 免费欧美成人 | 国产免费视频精品视频 | 国内自拍视频在线播放 | 2022国产精品| 国产精品成人免费视频一区 | 天天影视色香欲综合网一寡妇 | 麻豆传传媒久久久爱 | 欧美巨鞭大战丰满少妇 | 亚洲精品国产主播一区 | 日本va欧美va国产激情 | 亚洲色大成网站www久久九九 | 夜夜高潮夜夜爽高清完整版1 | 成人美女视频在线观看18 | 2021国产精品自在自线 | 久久久受www免费人成 | 国产精品久久..4399 | 国产成人a∨麻豆精品 | 国产一级淫片a免费播放口欧美 | 日本大乳免费观看久久99 | 久久久久久久久99精品情浪 | 性色av一二三天美传媒 | 亚洲精品欧美激情 | 懂色av蜜臀av粉嫩av分享 | 性一交一乱一伧老太 | 旅行的意义3在线观看韩国 三个熟睡少妇的按摩中文字幕 | 国产精品久久久久久久久久直播 | 欧美第5页 | 日本人妖猛交xxxhd | 国产成人精品在线视频 |