原生js實現一個DIV的碰撞反彈運動
阿新 • • 發佈:2018-06-28
絕對定位 doc type har tle ntb inpu wid PE
原生js實現一個DIV的碰撞反彈運動:
關鍵在於DIV的邊界檢測,進而改變運動方向,即可實現碰撞反彈效果。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{margin:0;} div{height:100px;width:100px;background:red;position:absolute;} /*添加絕對定位*/ </style> <script> window.onload=function(){ var btn=document.getElementById("btn"); var div=document.getElementById("div"); var speedx=6; var speedy=8; var t=null; btn.onclick=function(){ clearInterval(t); t=setInterval(function(){ var l=div.offsetLeft+speedx; var t=div.offsetTop+speedy; if(l>=document.documentElement.clientWidth-div.offsetWidth){ speedx*=-1; l=document.documentElement.clientWidth-div.offsetWidth; }else if(l<=0){ speedx*=-1; l=0; } if(t>=document.documentElement.clientHeight-div.offsetHeight){ speedy*=-1; t=document.documentElement.clientHeight-div.offsetHeight; }else if(t<=0){ speedy*=-1; t=0; } div.style.left=l+"px"; div.style.top=t+"px"; },10); } } </script> </head> <body> <input type="button" id="btn" value="開始運動"> <div id="div"></div> </body> </html>
原生js實現一個DIV的碰撞反彈運動