基于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 相关文章推荐
node.js中的fs.writeSync方法使用说明
Dec 15 Javascript
js控制文本框输入的字符类型方法汇总
Jun 19 Javascript
AngularJS Module方法详解
Dec 08 Javascript
JavaScript中的this到底是什么(一)
Dec 09 Javascript
java中String类型变量的赋值问题介绍
Mar 23 Javascript
AngularJS中比较两个数组是否相同
Aug 24 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
Oct 27 Javascript
JavaScript手风琴页面制作
May 17 Javascript
AngularJS 最常用的八种功能(基础知识)
Jun 26 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
微信小程序Flex布局用法深入浅出分析
Apr 25 Javascript
微信小程序实现多张图片上传功能
Nov 18 Javascript
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
Views rows style模板重写代码
2011/05/16 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
PHP获取MySql新增记录ID值的3种方法
2014/06/24 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
复杂的javascript窗口分帧解析
2016/02/19 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
python3去掉string中的标点符号方法
2019/01/22 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
请说出你所知道的线程同步的方法
2013/04/19 面试题
秘书岗位职责
2013/11/18 职场文书
相亲活动方案
2014/08/26 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
收入证明怎么写
2015/06/12 职场文书
2019各种保证书范文
2019/06/24 职场文书
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers