基于javascript实现碰撞检测


Posted in Javascript onMarch 12, 2020

本文实例为大家分享了javascript实现碰撞检测的具体代码,供大家参考,具体内容如下

<html>
<head>
<style>
#div1 {width:100px; height:100px; background:red; position:absolute; z-index:2;}
#div2 {width:100px; height:100px; background:yellow; position:absolute; left:230px; top:220px; z-index:1;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.οnlοad=function ()
{
 var oDiv=document.getElementById('div1');
 var oDiv2=document.getElementById('div2');
 
 oDiv.οnmοusedοwn=function (ev)
 {
 var oEvent=ev||event;
 var disX=oEvent.clientX-oDiv.offsetLeft;
 var disY=oEvent.clientY-oDiv.offsetTop;
 
 document.οnmοusemοve=function (ev)
 {
  var oEvent=ev||event;
  
  oDiv.style.left=oEvent.clientX-disX+'px';
  oDiv.style.top=oEvent.clientY-disY+'px';
  
  var l1=oDiv.offsetLeft;//红块左边线
  var r1=oDiv.offsetLeft+oDiv.offsetWidth;//红块右边线
  var t1=oDiv.offsetTop;//红块上边线
  var b1=oDiv.offsetTop+oDiv.offsetHeight;//红块下边线
  
  var l2=oDiv2.offsetLeft;//黄块左边线
  var r2=oDiv2.offsetLeft+oDiv2.offsetWidth;//黄块右边线
  var t2=oDiv2.offsetTop;//黄块上边线
  var b2=oDiv2.offsetTop+oDiv2.offsetHeight;//黄块下边线
  
  if(r1<l2 || l1>r2 || b1<t2 || t1>b2)
  {
  oDiv2.style.background='yellow';
  }
  else
  {
  oDiv2.style.background='green';
  }
 };
 
 document.οnmοuseup=function ()
 {
  document.οnmοusemοve=null;
  document.οnmοuseup=null;
 };
 };
};
</script>
</head>
 
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>

基于javascript实现碰撞检测

碰撞检测原理图如上:

我们检测碰撞时,发现两个div碰上检测比没碰上的检测要难,所以以没碰上作为检测条件。画上九宫格,当红色div在黄色div左边线或是右边线或是上边线或是下边线外时是永远不可能碰上的,只要这四个条件都不满足,意味着两个div相撞了,将黄块变绿。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
Dec 19 Javascript
node.js Web应用框架Express入门指南
May 28 Javascript
JQuery给元素绑定click事件多次执行的解决方法
May 29 Javascript
js使用setTimeout实现定时炸弹的方法
Apr 10 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
Mar 14 Javascript
如何防止INPUT按回车自动提交表单FORM
Dec 06 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
Angular2整合其他插件的方法
Jan 20 Javascript
bootstrap tooltips在 angularJS中的使用方法
Apr 10 Javascript
VUE实现密码验证与提示功能
Oct 18 Javascript
jQuery实时统计输入框字数及限制
Jun 24 jQuery
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 #jQuery
js 使用ajax设置和获取自定义header信息的方法小结
Mar 12 #Javascript
javascript实现拖拽碰撞检测
Mar 12 #Javascript
原生js实现碰撞检测
Mar 12 #Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
Mar 12 #Javascript
three.js利用射线Raycaster进行碰撞检测
Mar 12 #Javascript
JS实现碰撞检测效果
Mar 12 #Javascript
You might like
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
Node.js事件的正确使用方法
2019/04/05 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
Python 的 Socket 编程
2015/03/24 Python
python 获取字符串MD5值方法
2018/05/29 Python
python实现飞机大战微信小游戏
2020/03/21 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
XML文档面试题
2015/08/05 面试题
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
数据库测试通常都包括哪些方面
2015/11/30 面试题
库房主管岗位职责
2013/12/31 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
党员批评与自我批评
2014/10/15 职场文书
党支部工作总结2015
2015/04/01 职场文书
总经理司机岗位职责
2015/04/10 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
分家协议书范本
2016/03/22 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
css 中多种边框的实现小窍门
2021/04/07 HTML / CSS
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js