最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生JS實現(xiàn)的碰撞檢測功能示例

 更新時間:2018年05月18日 15:22:36   作者:Jason齊齊  
這篇文章主要介紹了原生JS實現(xiàn)的碰撞檢測功能,涉及javascript鼠標事件響應及頁面圖形坐標位置運算、檢測相關操作技巧,需要的朋友可以參考下

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

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>m.fzitv.net JS碰撞檢測</title>
<style>
div{width:100px;
  height:100px;
}
#box{background:red; position:absolute; }
#box1{background:green;position:absolute;top:300px; left:300px;}
</style>
<script>
//兩個碰撞的盒子。是建立在一個不動的基礎上。所以可以根據(jù)不動的盒子求出四個方向的left和top值。然后再判斷其是否碰撞,且碰撞的過程隨時改變其層級,(原需 var 8個變量,現(xiàn)在只需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.jb51.net/code/HtmlJsRun測試運行效果如下(碰撞判定時顏色改變):

 

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

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

相關文章

最新評論

钟山县| 酒泉市| 邹平县| 房产| 伊宁县| 庆阳市| 吉安县| 城固县| 宜州市| 阳曲县| 武冈市| 合阳县| 桃源县| 威远县| 乌鲁木齐市| 息烽县| 池州市| 吉隆县| 珲春市| 商水县| 来凤县| 同德县| 昭觉县| 永胜县| 潞西市| 松江区| 霍林郭勒市| 谷城县| 漳平市| 西乌珠穆沁旗| 年辖:市辖区| 千阳县| 弥勒县| 惠东县| 义马市| 海城市| 安化县| 高碑店市| 鄂尔多斯市| 股票| 田东县|