亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

JavaScript碰撞檢測原理及其實現代碼

瀏覽:7日期:2023-06-24 15:18:57

本文實例為大家分享了JavaScript實現碰撞檢測原的具體代碼,供大家參考,具體內容如下

1.模擬碰撞

簡單模擬碰撞過程,用一個可以拖拽的div2去嘗試碰撞一個固定的div1(均用絕對定位)

2.碰撞檢測原理

JavaScript碰撞檢測原理及其實現代碼

如圖所示: 使得div分別有4個距離屬性( L(left),T(top),R(right),B(bottom) ). 對于div1來說,畫出一個九宮格,div2在除中心以為的8個格子任意移動都不會發送碰撞.

JavaScript碰撞檢測原理及其實現代碼

也就是說,只要滿足條件:oDiv2.div2R小于oDiv1.div1L|| oDiv2.div2L大于oDiv1.div1R || oDiv2.div2B小于oDiv1.div1T|| oDiv2.div2T大于oDiv1.div1B就不會發送碰撞

3.具體測試代碼

<html><head> <title></title> <style type='text/css'> body{margin: 0;padding: 0;} #div2{height: 100px;width: 200px;background-color: orange;position: absolute;left: 0px;top:0px;z-index: 1;} #div1{height: 100px;width: 100px;background-color: #a6e22e;position: absolute;left: 600px;top:400px;} </style> <script type='text/javascript'> //獲取對象樣式屬性值 function getObjStyle(obj,attr) { return getComputedStyle(obj)?getComputedStyle(obj)[attr]:obj.currentStyle[attr]; } </script> <script type='text/javascript'> window.οnlοad=function (){ var oDiv1=document.getElementById(’div1’); var oDiv2=document.getElementById(’div2’); oDiv2.οnmοusedοwn=function (onEvent,obj){//對div1實現拖拽,并對碰撞進行檢測 obj=this; var ev=onEvent||event; var distance={}; distance.disX=ev.clientX-obj.offsetLeft;//到左邊框的距離 distance.disY=ev.clientY-obj.offsetTop;//到上邊框的距離 //獲取div1的四個值 oDiv1.div1L=getObjStyle(oDiv1,’left’); oDiv1.div1R=parseInt(getObjStyle(oDiv1,’left’))+parseInt(getObjStyle(oDiv1,’width’))+’px’; oDiv1.div1T=getObjStyle(oDiv1,’top’); oDiv1.div1B=parseInt(getObjStyle(oDiv1,’top’))+parseInt(getObjStyle(oDiv1,’height’))+’px’; if(obj.setCapture) obj.setCapture(); document.οnmοusemοve=function (onEvent){ var ev=onEvent||event; obj.style.left=ev.clientX-distance.disX+’px’; obj.style.top=ev.clientY-distance.disY+’px’; //獲取div2的四個值 oDiv2.div2L=getObjStyle(oDiv2,’left’); oDiv2.div2R=parseInt(getObjStyle(oDiv2,’left’))+parseInt(getObjStyle(oDiv2,’width’))+’px’; oDiv2.div2T=getObjStyle(oDiv2,’top’); oDiv2.div2B=parseInt(getObjStyle(oDiv2,’top’))+parseInt(getObjStyle(oDiv2,’height’))+’px’; /*console.log(’oDiv2.div2L:’+oDiv2.div2L+’ oDiv2.div2R:’+oDiv2.div2R+’ oDiv2.div2T:’+oDiv2.div2T+’ oDiv2.div2B:’+oDiv2.div2B);*/ //碰撞檢測 if(oDiv2.div2R<oDiv1.div1L || oDiv2.div2L>oDiv1.div1R || oDiv2.div2B<oDiv1.div1T || oDiv2.div2T>oDiv1.div1B){ //未發送碰撞 }else{ //發生碰撞 alert(’發生碰撞’); } } document.οnmοuseup=function (){ document.οnmοuseup=document.οnmοusemοve=null; if(obj.setCapture) obj.releaseCapture(); } return false; } } </script></head><body> <div id='div2'>div2</div> <div id='div1'>div1</div></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 久久久久亚洲国产 | 精品久久精品久久 | 日韩亚洲在线 | 亚洲免费在线看 | 亚洲欧美国产日韩天堂在线视 | avtom影院入口永久在线观看 | 乱码在线中文字幕加勒比 | 亚洲精品高清国产麻豆专区 | 殴美一级| 久草在线观看资源 | 亚洲综合首页 | se视频在线观看 | 韩国一级永久免费观看网址 | 欧美午夜视频 | 成人性色生活片免费网 | 亚洲美色综合天天久久综合精品 | 波多野结衣一区二区三区高清在线 | 成年人免费黄色 | 美国毛片aaa在线播放 | 欧美a级在线观看 | 亚洲精品一区国产二区 | 国产成人久久综合二区 | 欧美专区一区二区三区 | 成人久久18免费游戏网站 | 成人精品在线观看 | 成人午夜两性视频免费看 | 免费中文字幕一级毛片 | 久久久久999 | 国产午夜不卡在线观看视频666 | 日本亚欧乱色视频在线网站 | 美女视频永久黄网站免费观看国产 | 国产特黄一级一片免费 | 免费一级毛片在线播放放视频 | 男女很舒服爽视频免费 | 国产精品久久久久一区二区三区 | 激情一区二区三区成人 | 最新版天堂资源中文官网 | 国产91无套剧情在线播放 | 日p免费视频 | 欧美一级成人影院免费的 | 欧美精品色精品一区二区三区 |