利用JavaScript如何实现一个碰撞检测功能示例
作者
利用JavaScript如何实现一个碰撞检测功能示例?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
具体如下:
<!doctypehtml> <html> <head> <metacharset="utf-8"> <title>www.jb51.netJS碰撞检测</title> <style> div{width:100px; height:100px; } #box{background:red;position:absolute;} #box1{background:green;position:absolute;top:300px;left:300px;} </style> <script> //两个碰撞的盒子。是建立在一个不动的基础上。所以可以根据不动的盒子求出四个方向的left和top值。然后再判断其是否碰撞,且碰撞的过程随时改变其层级,(原需var8个变量,现在只需4个变量) functioncollText(obj,left,top,obj1){ varl1=obj.offsetLeft-obj.offsetWidth; vart1=obj.offsetTop-obj.offsetHeight; varr1=obj.offsetLeft+obj.offsetWidth; varb1=obj.offsetTop+obj.offsetHeight; if(left<l1||top<t1||left>r1||top>b1){ obj.style.zIndex=3; obj1.style.zIndex=1; returntrue; }else{ obj.style.zIndex=1; obj1.style.zIndex=3; returnfalse; } }; window.onload=function(){ varoBox=document.getElementById('box'); varoBox1=document.getElementById('box1'); oBox.onmousedown=function(ev){ varoEvent=ev||event; vardisX=oEvent.clientX-oBox.offsetLeft; vardisY=oEvent.clientY-oBox.offsetTop; document.onmousemove=function(ev){ varoEvent=ev||event; varl=oEvent.clientX-disX; vart=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(); returnfalse; } oBox1.onmousedown=function(ev){ varoEvent=ev||event; vardisX1=oEvent.clientX-oBox1.offsetLeft; vardisY1=oEvent.clientY-oBox1.offsetTop; document.onmousemove=function(ev){ varoEvent=ev||event; varle=oEvent.clientX-disX1; varto=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(); returnfalse; } } </script> </head> <body> <divid="box"></div> <divid="box1"></div> </body> </html>
关于利用JavaScript如何实现一个碰撞检测功能示例问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注恰卡编程网行业资讯频道了解更多相关知识。
目录
推荐阅读
-
JavaScript闭包用多会造成内存泄露吗
-
javascript中文乱码如何解决
-
PHP学习第十五天——JavaScript入门DOM对象:二
-
Node.js基本内容和知识点
简单的说node.js就是运行在服务端的JavaScript,起初段定位是后端开发语言,由于技术的不够成熟,一般小型项目...
-
PHP与Node.js:一个史诗般开发者的分享
-
JavaScript 中 find() 和 filter() 方法的区别
JavaScript在ES6上有很多数组方法,每种方法都有独特的用途和好处。在开发应用程序时,大多使用数组方法来获...
-
js怎么跟php结合使用
-
简单说说Node.js和JavaScript
Node.js是一个开源和跨平台的JavaScript运行时环境,在浏览器之外运行V8JavaScript引擎(...
-
前端开发工程师专业技能简历范文
-
JavaScript怎么实现淘宝网图片的局部放大功能
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~