基于javascript實(shí)現(xiàn)碰撞檢測(cè)
本文實(shí)例為大家分享了javascript實(shí)現(xiàn)碰撞檢測(cè)的具體代碼,供大家參考,具體內(nèi)容如下
<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>無(wú)標(biāo)題文檔</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>
碰撞檢測(cè)原理圖如上:
我們檢測(cè)碰撞時(shí),發(fā)現(xiàn)兩個(gè)div碰上檢測(cè)比沒(méi)碰上的檢測(cè)要難,所以以沒(méi)碰上作為檢測(cè)條件。畫上九宮格,當(dāng)紅色div在黃色div左邊線或是右邊線或是上邊線或是下邊線外時(shí)是永遠(yuǎn)不可能碰上的,只要這四個(gè)條件都不滿足,意味著兩個(gè)div相撞了,將黃塊變綠。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JS實(shí)現(xiàn)碰撞檢測(cè)的方法分析
- javascript制作游戲開發(fā)碰撞檢測(cè)的封裝代碼
- js實(shí)現(xiàn)碰撞檢測(cè)特效代碼分享
- 原生JS實(shí)現(xiàn)的碰撞檢測(cè)功能示例
- 原生js實(shí)現(xiàn)碰撞檢測(cè)
- javascript實(shí)現(xiàn)多邊形碰撞檢測(cè)
- js實(shí)現(xiàn)拖拽與碰撞檢測(cè)
- 原生js實(shí)現(xiàn)移動(dòng)小球(碰撞檢測(cè))
- js 實(shí)現(xiàn)碰撞檢測(cè)的示例
- three.js利用射線Raycaster進(jìn)行碰撞檢測(cè)
- js實(shí)現(xiàn)碰撞檢測(cè)
相關(guān)文章
JS實(shí)現(xiàn)勻速與減速緩慢運(yùn)動(dòng)的動(dòng)畫效果封裝示例
這篇文章主要介紹了JS實(shí)現(xiàn)勻速與減速緩慢運(yùn)動(dòng)的動(dòng)畫效果,結(jié)合實(shí)例形式分析了JavaScript封裝結(jié)合定時(shí)器的頁(yè)面元素動(dòng)態(tài)變換效果動(dòng)畫相關(guān)操作技巧,需要的朋友可以參考下2018-08-08深入理解JavaScript創(chuàng)建對(duì)象的多種方式以及優(yōu)缺點(diǎn)
本篇文章主要介紹了JavaScript創(chuàng)建對(duì)象的多種方式以及優(yōu)缺點(diǎn),主要介紹了5種方式,有興趣的可以了解下2017-06-06在你的網(wǎng)頁(yè)中嵌入外部網(wǎng)頁(yè)的方法
在你的網(wǎng)頁(yè)中嵌入外部網(wǎng)頁(yè)的方法...2007-04-04JavaScript+H5實(shí)現(xiàn)微信搖一搖功能
這篇文章主要為大家詳細(xì)介紹了JavaScript+H5實(shí)現(xiàn)微信搖一搖功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05JavaScript計(jì)算字符串中每個(gè)字符出現(xiàn)次數(shù)的小例子
這篇文章介紹了在JS中計(jì)算字符串中每個(gè)字符出現(xiàn)的次數(shù),有需要的朋友可以參考一下2013-07-07javascript+ajax實(shí)現(xiàn)產(chǎn)品頁(yè)面加載信息
本文給大家分享的是使用javascript結(jié)合ajax實(shí)現(xiàn)產(chǎn)品頁(yè)面無(wú)刷新加載信息的代碼,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-07-07一文帶你了解一下JavaScript中什么是嚴(yán)格模式
嚴(yán)格模式是?ECMAScript?5?引入的一種運(yùn)行模式,可以讓?JavaScript?在更加嚴(yán)格的條件下運(yùn)行,本文主要為大家詳細(xì)介紹了JavaScript中嚴(yán)格模式的使用,需要的可以參考下2023-11-11javascript AOP 實(shí)現(xiàn)ajax回調(diào)函數(shù)使用比較方便
javascript AOP 實(shí)現(xiàn)ajax回調(diào)函數(shù)使用比較方便,需要的朋友可以參考下。2010-11-11