基于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简化Ajax开发 Ajax开发入门
Oct 14 Javascript
跟着JQuery API学Jquery 之三 筛选
Apr 09 Javascript
js面向对象 多种创建对象方法小结
May 21 Javascript
jQuery 全选/反选以及单击行改变背景色实例
Jul 02 Javascript
用js一次改变多个input的readonly属性值的方法
Jun 11 Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
JS中call/apply、arguments、undefined/null方法详解
Feb 15 Javascript
jQuery简单实现MD5加密的方法
Mar 03 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
bmob js-sdk 在vue中的使用教程
Jan 21 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
Apr 14 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 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 adodb连接mssql解决乱码问题
2009/06/12 PHP
ThinkPHP3.1新特性之Action参数绑定
2014/06/19 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
javascript prototype原型操作笔记
2009/12/07 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
简单介绍Python中的JSON使用
2015/04/28 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
一夜的工作教学反思
2014/02/08 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
毕业设计说明书
2014/05/07 职场文书
优秀应届生求职信
2014/06/16 职场文书
个人批评与自我批评
2014/10/15 职场文书
委托证明范本
2014/11/25 职场文书
党校党性分析材料
2014/12/19 职场文书