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

原生js實(shí)現(xiàn)碰撞檢測(cè)

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

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

隨手寫(xiě)了個(gè)簡(jiǎn)單的碰撞檢測(cè)的代碼。檢測(cè)box1和box2是否發(fā)生碰撞,若發(fā)生碰撞,box2顏色發(fā)生隨機(jī)改變,并反彈到隨機(jī)位置。

<!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>

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

相關(guān)文章

  • 代碼生成器 document.write()

    代碼生成器 document.write()

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

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

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

    多附件上傳組件演示

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

    原生js寫(xiě)的放大鏡效果

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

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

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

    輕松掌握J(rèn)avaScript策略模式

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

    JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名器實(shí)例詳解

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

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

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

    小程序?qū)崿F(xiàn)抽獎(jiǎng)動(dòng)畫(huà)

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

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

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

最新評(píng)論