您好,登錄后才能下訂單哦!
本文實例為大家分享了javascript實現碰撞檢測的具體代碼,供大家參考,具體內容如下
<html> <head> <style> #div1 {width:100px; height:100px; background:red; position:absolute; z-index:2;} #div2 {width:100px; height:100px; background:yellow; position:absolute; left:230px; top:220px; z-index:1;} </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無標題文檔</title> <script> window.οnlοad=function () { var oDiv=document.getElementById('div1'); var oDiv2=document.getElementById('div2'); oDiv.οnmοusedοwn=function (ev) { var oEvent=ev||event; var disX=oEvent.clientX-oDiv.offsetLeft; var disY=oEvent.clientY-oDiv.offsetTop; document.οnmοusemοve=function (ev) { var oEvent=ev||event; oDiv.style.left=oEvent.clientX-disX+'px'; oDiv.style.top=oEvent.clientY-disY+'px'; var l1=oDiv.offsetLeft;//紅塊左邊線 var r1=oDiv.offsetLeft+oDiv.offsetWidth;//紅塊右邊線 var t1=oDiv.offsetTop;//紅塊上邊線 var b1=oDiv.offsetTop+oDiv.offsetHeight;//紅塊下邊線 var l2=oDiv2.offsetLeft;//黃塊左邊線 var r2=oDiv2.offsetLeft+oDiv2.offsetWidth;//黃塊右邊線 var t2=oDiv2.offsetTop;//黃塊上邊線 var b2=oDiv2.offsetTop+oDiv2.offsetHeight;//黃塊下邊線 if(r1<l2 || l1>r2 || b1<t2 || t1>b2) { oDiv2.style.background='yellow'; } else { oDiv2.style.background='green'; } }; document.οnmοuseup=function () { document.οnmοusemοve=null; document.οnmοuseup=null; }; }; }; </script> </head> <body> <div id="div1"></div> <div id="div2"></div> </body> </html>
碰撞檢測原理圖如上:
我們檢測碰撞時,發現兩個div碰上檢測比沒碰上的檢測要難,所以以沒碰上作為檢測條件。畫上九宮格,當紅色div在黃色div左邊線或是右邊線或是上邊線或是下邊線外時是永遠不可能碰上的,只要這四個條件都不滿足,意味著兩個div相撞了,將黃塊變綠。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。