国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

原生JS實現的碰撞檢測功能示例

2019-11-19 13:48:54
字體:
來源:轉載
供稿:網友

本文實例講述了原生JS實現的碰撞檢測功能。分享給大家供大家參考,具體如下:

<!doctype html><html><head><meta charset="utf-8"><title>m.survivalescaperooms.com JS碰撞檢測</title><style>div{width:100px;  height:100px;}#box{background:red; position:absolute; }#box1{background:green;position:absolute;top:300px; left:300px;}</style><script>//兩個碰撞的盒子。是建立在一個不動的基礎上。所以可以根據不動的盒子求出四個方向的left和top值。然后再判斷其是否碰撞,且碰撞的過程隨時改變其層級,(原需 var 8個變量,現在只需4個變量)function collText(obj,left,top,obj1){      var l1=obj.offsetLeft-obj.offsetWidth;      var t1=obj.offsetTop-obj.offsetHeight;      var r1=obj.offsetLeft+obj.offsetWidth;      var b1=obj.offsetTop+obj.offsetHeight;      if(left<l1||top<t1||left>r1||top>b1){        obj.style.zIndex=3;        obj1.style.zIndex=1;        return true;      }else{        obj.style.zIndex=1;        obj1.style.zIndex=3;        return false;      }};window.onload=function(){  var oBox=document.getElementById('box');  var oBox1=document.getElementById('box1');  oBox.onmousedown=function(ev){    var oEvent= ev  ||  event;    var disX=oEvent.clientX-oBox.offsetLeft;    var disY=oEvent.clientY-oBox.offsetTop;    document.onmousemove=function(ev){      var oEvent= ev ||  event;      var l=oEvent.clientX-disX;      var t=oEvent.clientY-disY;      oBox.style.left=l+'px'  ;      oBox.style.top=t+'px'  ;      if(collText(oBox1,l,t,oBox)){        oBox1.style.background='green';      }else{        oBox1.style.background='yellow';      }    };    document.onmouseup=function(){      document.onmousemove=null;      document.onmouseup=null;      oBox.reseaseCapture&&oBox.reseaseCapture();    };    oBox.setCapture&&oBox.setCapture();    return false;  }  oBox1.onmousedown=function(ev){    var oEvent= ev ||  event;    var disX1=oEvent.clientX-oBox1.offsetLeft;    var disY1=oEvent.clientY-oBox1.offsetTop;    document.onmousemove=function(ev){      var oEvent= ev ||  event;      var le=oEvent.clientX-disX1;      var to=oEvent.clientY-disY1;      oBox1.style.left=le+'px'  ;      oBox1.style.top=to+'px'  ;      if(collText(oBox,le,to,oBox1)){        oBox.style.background='red';      }else{        oBox.style.background='#000';      }    };    document.onmouseup=function(){      document.onmousemove=null;      document.onmouseup=null;      oBox1.reseaseCapture&&oBox1.reseaseCapture();    }    oBox1.setCapture&&oBox1.setCapture();    return false;  }}</script></head><body><div id="box"></div><div id="box1"></div></body></html>

這里使用在線HTML/CSS/JavaScript運行工具http://tools.VeVB.COm/code/HtmlJsRun測試運行效果如下(碰撞判定時顏色改變):

 

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript運動效果與技巧匯總》、《JavaScript動畫特效與技巧匯總》、《JavaScript圖形繪制技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 工布江达县| 昌平区| 洪江市| 夹江县| 石屏县| 孝昌县| 沁阳市| 城市| 康乐县| 江口县| 南部县| 荃湾区| 大冶市| 芮城县| 黎川县| 嵩明县| 呼图壁县| 漠河县| 巨鹿县| 明溪县| 惠东县| 兴城市| 台州市| 湘潭县| 顺昌县| 伊金霍洛旗| 慈溪市| 高尔夫| 靖安县| 蓬溪县| 普兰店市| 玛多县| 长顺县| 阿克陶县| 彭州市| 伽师县| 皮山县| 思南县| 分宜县| 台东市| 伊川县|