JS实现碰撞检测步骤详解

这次给大家带来JS实现碰撞检测步骤详解,JS实现碰撞检测的注意事项有哪些,下面就是实战案例,一起来看一下。

 JS碰撞检测p{width:100px;  height:100px;}#box{background:red; position:absolute; }#box1{background:green;position:absolute;top:300px; left:300px;}//两个碰撞的盒子。是建立在一个不动的基础上。所以可以根据不动的盒子求出四个方向的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||topr1||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;  }}

登录后复制

这里使用在线HTML/CSS/JavaScript运行工具http://tools.jb51.net/code/HtmlJsRun测试运行效果如下(碰撞判定时颜色改变):

 JS实现碰撞检测步骤详解

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

react-navigation使用步骤详解

vue父子组件传值及slot应用步骤详解

以上就是JS实现碰撞检测步骤详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2759269.html

(0)
上一篇 2025年3月8日 08:25:08
下一篇 2025年2月18日 01:58:07

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS实现json对象数组按对象属性排序步骤详解

    这次给大家带来JS实现json对象数组按对象属性排序步骤详解,JS实现json对象数组按对象属性排序的注意事项有哪些,下面就是实战案例,一起来看一下。 在实际工作经常会出现这样一个问题:后台返回一个数组中有i个json数据,需要我们根据js…

    2025年3月8日
    200
  • JS实现3des+base64加密解密算法步骤详解

    这次给大家带来JS实现3des+base64加密解密算法,JS实现3des+base64加密解密算法的注意事项有哪些,下面就是实战案例,一起来看一下。 1. index.html: BASE64编码 var str = “网址:http:/…

    2025年3月8日
    200
  • JS调用本地摄像头功能步骤详解

    这次给大家带来JS调用本地摄像头功能步骤详解,JS调用本地摄像头功能的注意事项有哪些,下面就是实战案例,一起来看一下。 今天学习了一下js调用本地摄像头,其实是实现不是很麻烦,下面是代码部分,连接上Tomcat服务器,然后再到网页上打开即可…

    编程技术 2025年3月8日
    200
  • JS累加、迭代、穷举、递归等常用算法使用总结

    这次给大家带来JS累加、迭代、穷举、递归等常用算法使用总结,JS累加、迭代、穷举、递归等常用算法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 累加和累积 累加:将一系列的数据加到一个变量里面。最后的得到累加的结果 比如:将1到10…

    编程技术 2025年3月8日
    200
  • vue-cli引入、配置axios步骤详解

    这次给大家带来vue-cli引入、配置axios步骤详解,vue-cli引入、配置axios的注意事项有哪些,下面就是实战案例,一起来看一下。 一、npm 安装axios,文件根目录下安装,指令如下 npm install axios &#…

    编程技术 2025年3月8日
    200
  • JS计算圆周率到小数点后100位实现步骤详解

    这次给大家带来JS计算圆周率到小数点后100位实现步骤详解,JS计算圆周率到小数点后100位的注意事项有哪些,下面就是实战案例,一起来看一下。 浮点数的有效数位是16位,我自己做了一个大数类,能存储100位有效数位,并实现了大数类的基本运算…

    编程技术 2025年3月8日
    200
  • Vue.js实现微信公众号菜单编辑器步骤详解(上)

    这次给大家带来Vue.js实现微信公众号菜单编辑器步骤详解(上),Vue.js实现微信公众号菜单编辑器的注意事项有哪些,下面就是实战案例,一起来看一下。 学习一段时间Vue.js,于是想尝试着做一个像微信平台里那样的菜单编辑器,在这里分享下…

    2025年3月8日
    200
  • Vue.js实现微信公众号菜单编辑器步骤详解(下)

    这次给大家带来Vue.js实现微信公众号菜单编辑器步骤详解(下),Vue.js实现微信公众号菜单编辑器的注意事项有哪些,下面就是实战案例,一起来看一下。 实现菜单删除方法 在vue实例中添加删除菜单方法,根据选中的菜单级别和索引来删除。 m…

    2025年3月8日
    200
  • 使用vue.js实现编辑菜谱

    这次给大家带来使用vue.js实现编辑菜谱,使用vue.js实现编辑菜谱的注意事项有哪些,下面就是实战案例,一起来看一下。 1、先获取门店下的所有菜品类型、菜品名称、菜品id(list),也就是最大数据量 this.$http.post(c…

    2025年3月8日
    200
  • JS实现简单购物车功能代码分析

    这次给大家带来JS实现简单购物车功能代码分析,JS实现简单购物车功能的注意事项有哪些,下面就是实战案例,一起来看一下。 我们肯定都很熟悉商品购物车这一功能,每当我们在某宝某东上购买商品的时候,看中了哪件商品,就会加入购物车中,最后结算。购物…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论