基于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 相关文章推荐
动态加载js文件 document.createElement
Oct 14 Javascript
拖动一个HTML元素
Dec 22 Javascript
javascript 写的一个简单的timer
Jul 30 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
Jul 29 Javascript
一样的table?不一样的table(可编辑状态table)
Sep 19 Javascript
jquery设置控件位置的方法
Aug 21 Javascript
JavaScript实现找出字符串中第一个不重复的字符
Sep 03 Javascript
jQuery固定元素插件scrolltofixed使用指南
Apr 21 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
Feb 22 Javascript
node.js中express-session配置项详解
May 31 Javascript
解决Vue页面固定滚动位置的处理办法
Jul 13 Javascript
js实现GIF图片的分解和合成
Oct 24 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
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
Angular的$http与$location
2016/12/26 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
Python3基础之输入和输出实例分析
2014/08/18 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python 私有函数的实例详解
2017/09/11 Python
Python 字符串换行的多种方式
2018/09/06 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
django 单表操作实例详解
2019/07/30 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
python画环形图的方法
2020/03/25 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
使用C#编写创建一个线程的代码
2013/01/22 面试题
中班开学寄语
2014/04/04 职场文书
弘扬雷锋精神演讲稿
2014/05/10 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
酒店员工手册范本
2015/05/14 职场文书
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python