基于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 (八) 插播:jQuery实施方案
Feb 23 Javascript
修复ie8&amp;chrome下window的resize事件多次执行
Oct 20 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 Javascript
Lab.js初次使用笔记
Feb 28 Javascript
jquery实现左右滑动菜单效果代码
Aug 27 Javascript
Vue通过input筛选数据
Oct 26 Javascript
select获取下拉框的值 下拉框默认选中方法
Feb 28 Javascript
vue中实现左右联动的效果
Jun 22 Javascript
聊聊Vue中provide/inject的应用详解
Nov 10 Javascript
不刷新网页就能链接新的js文件方法总结
Mar 01 Javascript
全面解析Vue中的$nextTick
Dec 24 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中的类-什么叫类
2006/11/20 PHP
php 清除网页病毒的方法
2008/12/05 PHP
php at(@)符号的用法简介
2009/07/11 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
python中字典(Dictionary)用法实例详解
2015/05/30 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Python PIL图片添加字体的例子
2019/08/22 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
高分子材料个人求职信范文
2013/09/25 职场文书
数据员岗位职责
2013/11/19 职场文书
同事打架检讨书
2014/02/04 职场文书
《日月潭》教学反思
2014/02/28 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
python基础之错误和异常处理
2021/10/24 Python
千万级用户系统SQL调优实战分享
2022/03/03 MySQL