亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用上下左右控制游動,不超過邊界,左邊上邊實現了,下邊右邊怎么解決

用上下左右控制游動,不超過邊界,左邊上邊實現了,下邊右邊怎么解決

秋高水長 2016-04-11 08:48:02
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html?xmlns="http://www.w3.org/1999/xhtml"> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>follow?me</title> <style> #border{ width:300px; height:500px; border:1px?red?solid; margin:50px?auto; position:relative; } #kuai{ height:20px; width:20px; border-radius:10px; border:1px?red?solid; background:green; position:absolute; } </style> </head> <body> <div?id="border"> ????<div?id='kuai'> ????</div> </div> </body> <script> var?border=document.getElementById('border'); var?div=document.getElementById('kuai'); //跟隨鼠標移動 /*document.onmousemove=function?(ev){ var?Event=ev||event; div.style.left=Event.clientX+'px'; div.style.top=Event.clientY+'px'; }*/ //方向鍵控制 var?w,a,s,d; var?timer=null; timer=setInterval(function?(){ if(s){ div.style.top=div.offsetTop-10+'px'; if(div.offsetTop<=0){ //alert(''); div.style.top=0; } } if(w){ div.style.top=div.offsetTop+10+'px'; } if(a){ div.style.left=div.offsetLeft-10+'px'; if(div.offsetLeft<=0){ //alert(''); div.style.left=0; } } if(d){ div.style.left=div.offsetLeft+10+'px'; } },40) document.onkeydown=function(ev){ var?Event=ev||event; switch(Event.keyCode){ case?37: a=true; break; case?38: s=true; break; case?39: d=true; break; case?40: w=true; break; } } document.onkeyup=function(ev){ var?Event=ev||event; switch(Event.keyCode){ case?37: a=false; break; case?38: s=false; break; case?39: d=false; break; case?40: w=false; break; } } </script> </html>
查看完整描述

1 回答

已采納
?
李曉健

TA貢獻1036條經驗 獲得超461個贊

獲取到?border 的寬和高,根據它的寬和高就能算出右邊界和下邊界呀,計算時還需要考慮div自身的寬和高。

查看完整回答
反對 回復 2016-04-11
  • 秋高水長
    秋高水長
    這個我以前試過,但是實現的不是想要的 if(div.offsetLeft>=280){ div.style.right=0; //alert(''); } 照樣是完美通過 感覺上div.style.right=0;都沒起到作用
  • 李曉健
    李曉健
    這個你就只能打斷點去調了,看看哪里的值和你預想的不一樣,找到原因,就好改了。
  • 秋高水長
    秋高水長
    這兩天比較忙,剛著手改,改好了,還是需要用left或者top,用right和bottom不能實現
  • 1 回答
  • 0 關注
  • 1629 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號