欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生js實現(xiàn)碰撞檢測

 更新時間:2020年03月12日 11:33:35   作者:qq_43606265  
這篇文章主要為大家詳細介紹了原生js實現(xiàn)碰撞檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js實現(xiàn)碰撞檢測的具體代碼,供大家參考,具體內(nèi)容如下

隨手寫了個簡單的碰撞檢測的代碼。檢測box1和box2是否發(fā)生碰撞,若發(fā)生碰撞,box2顏色發(fā)生隨機改變,并反彈到隨機位置。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    .box1,.box2{
      width: 100px;
      height: 100px;
      background-color: #f00;
      position:absolute;
    }
    .box2{
      background-color: #00f;
      left: 200px;
      top: 200px;
    }
    
  </style>
</head>
<body>
  <div class="box1"></div>
  <div class="box2"></div>
</body>
<script>
  var box1=document.querySelector(".box1");
  var box2=document.querySelector(".box2");
  box1.addEventListener("mousedown",mouseHandler);
  function mouseHandler(e){
    if(e.type==="mousedown"){
      e.preventDefault();
      document.elem=this;
      document.pointX= e.offsetX;
      document.pointY= e.offsetY;
      document.addEventListener("mousemove",mouseHandler);
      this.addEventListener("mouseup",mouseHandler);
    }else if(e.type==="mousemove"){
      this.elem.style.left= e.x-this.pointX+"px";
      this.elem.style.top= e.y-this.pointY+"px";
      hitText(this.elem,box2);
    }else if(e.type==="mouseup"){
      document.removeEventListener("mousemove",mouseHandler);
      this.removeEventListener("mouseup",mouseHandler);
    }
  }
  function hitText(elem1,elem2){
    var rect1=elem1.getBoundingClientRect();
    var rect2=elem2.getBoundingClientRect();
    var ponit1={x:rect1.x,y:rect1.y};
    var ponit4={x:rect1.x+rect1.width,y:rect1.y+rect1.height};
    if(
      ponit4.x>rect2.x
        &&ponit1.x<(rect2.x+rect2.width)
        &&ponit4.y>rect2.y
        &&ponit1.y<(rect2.y+rect2.height)){
      elem2.style.backgroundColor=randomColor();
      elem2.style.left=Math.round(Math.random()*document.documentElement.clientWidth)+"px";
      elem2.style.top=Math.round(Math.random()*document.documentElement.clientHeight)+"px";
    }
  }
  function randomColor(){
    var a=Math.round(Math.random()*255);
    var b=Math.round(Math.random()*255);
    var c=Math.round(Math.random()*255);
    var color="rgb("+ a+","+b+","+c+")";
    return color;
  }
</script>
</html>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 代碼生成器 document.write()

    代碼生成器 document.write()

    代碼生成器 document.write()...
    2007-04-04
  • 給localStorage設(shè)置一個過期時間的方法分享

    給localStorage設(shè)置一個過期時間的方法分享

    我們都知道localStorage不主動刪除,永遠不會銷毀,那么如何設(shè)置localStorage的過期時間呢?下面這篇文章主要給大家介紹了關(guān)于如何給localStorage設(shè)置一個過期時間的相關(guān)資料,需要的朋友可以參考下
    2018-11-11
  • 多附件上傳組件演示

    多附件上傳組件演示

    多附件上傳組件演示...
    2006-09-09
  • 原生js寫的放大鏡效果

    原生js寫的放大鏡效果

    在淘寶上購物時,總會看到類似放大鏡的效果。以下為原生js寫的一個放大鏡效果,其中肯定有很多不足,請大牛們指正,謝啦
    2012-08-08
  • JS使用插件cryptojs進行加密解密數(shù)據(jù)實例

    JS使用插件cryptojs進行加密解密數(shù)據(jù)實例

    這篇文章主要介紹了JS使用插件cryptojs進行加密解密數(shù)據(jù),結(jié)合完整實例形式分析了javascript基于加密插件實現(xiàn)加密解密功能的相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • 輕松掌握JavaScript策略模式

    輕松掌握JavaScript策略模式

    這篇文章主要幫助大家輕松掌握JavaScript策略模式,什么是js策略模式,感興趣的小伙伴們可以參考一下
    2016-08-08
  • JavaScript實現(xiàn)隨機點名器實例詳解

    JavaScript實現(xiàn)隨機點名器實例詳解

    這篇文章主要介紹了JavaScript隨機點名器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • javascript相關(guān)事件的幾個概念

    javascript相關(guān)事件的幾個概念

    對于事件來講,首先,我們需要了解這樣幾個概念:事件;事件處理程序;事件類型;事件流;事件冒泡;事件捕獲;事件對象;事件方面的性能優(yōu)化(事件委托、移除事件處理程序);常見的瀏覽器兼容問題。
    2015-05-05
  • 小程序?qū)崿F(xiàn)抽獎動畫

    小程序?qū)崿F(xiàn)抽獎動畫

    這篇文章主要為大家詳細介紹了小程序?qū)崿F(xiàn)抽獎動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • js指定日期增加指定月份的實現(xiàn)方法

    js指定日期增加指定月份的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于js指定日期增加指定月份的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12

最新評論