基于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 相关文章推荐
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
Apr 01 Javascript
HTML 自动伸缩的表格Table js实现
Apr 01 Javascript
javascript 获取页面的高度及滚动条的位置的代码
May 06 Javascript
常用Extjs工具:Extjs.util.Format使用方法
Mar 22 Javascript
js数组转json并在后台对其解析具体实现
Nov 20 Javascript
回车直接实现点击某按钮的效果即触发单击事件
Feb 27 Javascript
Bootstrap模仿起筷首页效果
May 09 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
Dec 08 Javascript
Vue.js使用v-show和v-if的注意事项
Dec 13 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
Feb 23 Javascript
json_decode 索引为数字时自动排序问题解决方法
Mar 28 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
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的闭合标签“?&gt;”
2014/08/28 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
本地存储localStorage用法详解
2017/07/31 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
茶叶生产计划书
2014/01/10 职场文书
技校个人求职信范文
2014/01/25 职场文书
给实习单位的感谢信
2014/02/01 职场文书
班级寄语大全
2014/04/10 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
我的生日感言
2015/08/03 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫