1. 程式人生 > >原生js實現一個DIV的碰撞反彈運動

原生js實現一個DIV的碰撞反彈運動

絕對定位 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的碰撞反彈運動