基于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 相关文章推荐
Javascript valueOf 使用方法
Dec 28 Javascript
javascript cookies操作集合
Apr 12 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
onbeforeunload与onunload事件异同点总结
Jun 24 Javascript
动态添加option及createElement使用示例
Jan 26 Javascript
获取当前点击按钮的id用this.id实现
Mar 17 Javascript
window.location.href的用法(动态输出跳转)
Aug 09 Javascript
JavaScript模块化开发之SeaJS
Dec 13 Javascript
vue的props实现子组件随父组件一起变化
Oct 27 Javascript
详解vue路由篇(动态路由、路由嵌套)
Jan 27 Javascript
实例详解vue中的$root和$parent
Apr 29 Javascript
Vue实现页面添加水印功能
Nov 09 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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
基于MySQL分区性能的详细介绍
2013/05/02 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
JavaScript 快捷键设置实现代码
2009/03/13 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
2013/12/27 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
JavaScript中使用自然对数ln的方法
2015/06/14 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
python基础教程之udp端口扫描
2014/02/10 Python
深入解析Python中的urllib2模块
2015/11/13 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
Python代码实现KNN算法
2017/12/20 Python
Python3 中文文件读写方法
2018/01/23 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
英国著名书店:Foyles
2018/12/01 全球购物
C++面试题目
2013/06/25 面试题
班组长安全生产职责
2013/12/16 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
常务副总经理任命书
2014/06/05 职场文书
参赛口号
2014/06/16 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang