JS實現碰撞檢測的方法分析,js實現碰撞檢測

來源:互聯網
上載者:User

JS實現碰撞檢測的方法分析,js實現碰撞檢測

本文執行個體講述了JS實現碰撞檢測的方法。分享給大家供大家參考,具體如下:

一個簡單的碰撞檢測例子,檢測div1是否和div2發生碰撞,當div1碰到div2時,改變div2的顏色,看測試圖

看一下分析圖:

當div1在div2的上邊線(t2)以上的地區活動時,始終碰不上
當div1在div2的右邊線(r2)以右的地區活動時,始終碰不上
當div1在div2的下邊線(b2)以下的地區活動時,始終碰不上
當div1在div2的左邊線(r2)以左的地區活動時,始終碰不上

除了以上四種情況,其他情況表示div1和div2碰上了,下面試完整測試代碼

HTML部分:

<div id="div1"></div><div id="div2"></div>

css部分:

<style>    #div1{      width:100px ;height: 100px;background: green;      position: absolute;    }    #div2{      width:100px ;height: 100px;background: yellow;      position: absolute;left: 300px;top: 200px;z-index: -1;    }</style>

JS部分:

<script>  window.onload = function () {    var oDiv = document.getElementById('div1');    var oDiv2 = document.getElementById('div2');    var disX = 0;    var disY = 0;    oDiv.onmousedown = function (ev) {      var ev = ev|| window.event;      disX = ev.clientX - oDiv.offsetLeft;      disY = ev.clientY - oDiv.offsetTop;      document.onmousemove = function (ev) {        var ev = ev|| window.event;        var t1 = oDiv.offsetTop;        var l1 = oDiv.offsetLeft;        var r1 = oDiv.offsetLeft + oDiv.offsetWidth;        var b1 = oDiv.offsetTop + oDiv.offsetHeight;        var t2 = oDiv2.offsetTop;        var l2 = oDiv2.offsetLeft;        var r2 = oDiv2.offsetLeft + oDiv2.offsetWidth;        var b2 = oDiv2.offsetTop + oDiv2.offsetHeight;        if(b1<t2 || l1>r2 || t1>b2 || r1<l2){// 表示沒碰上        }else{          oDiv2.style.background = 'blue';        }        oDiv.style.left = ev.clientX - disX +'px';        oDiv.style.top = ev.clientY - disY +'px';      }      document.onmouseup = function () {        document.onmousemove = null;        document.onmouseup = null;      }      return false;    }  }</script>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.