基于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 相关文章推荐
使用indexOf等在JavaScript的数组中进行元素查找和替换
Sep 18 Javascript
js 自动播放的实例代码
Nov 19 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
May 09 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
Jan 02 Javascript
JavaScript返回上一页的三种方法及区别介绍
Jul 04 Javascript
CSS图片响应式 垂直水平居中
Aug 14 Javascript
20分钟轻松创建自己的Bootstrap站点
May 12 Javascript
AngularJS基础 ng-open 指令简单实例
Aug 02 Javascript
js操作浏览器的参数方法
Jan 21 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
Vue.js中对css的操作(修改)具体方式详解
Oct 30 Javascript
vue基于better-scroll实现左右联动滑动页面
Jun 30 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
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
php在字符串中查找另一个字符串
2008/11/19 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
30 个很棒的PHP开源CMS内容管理系统小结
2011/10/14 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
javascript数组使用调用方法汇总
2007/12/08 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
Python基础教程之利用期物处理并发
2018/03/29 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
python中必要的名词解释
2019/11/20 Python
python str字符串转uuid实例
2020/03/03 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
教育科研先进个人材料
2014/01/26 职场文书
函授自我鉴定范文
2014/02/06 职场文书
《乡愁》教学反思
2014/02/18 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
离职证明格式样本
2015/06/12 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书